From d915c2e76c0dc7baf92495ab33ebd79cc41bda4e Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 28 Dec 2016 15:39:09 +0100 Subject: [PATCH] [platform] prevents JVM-specific VM options from being dynamic --- .../src/com/intellij/openapi/projectRoots/JdkUtil.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index 39ffa5732b19..1419c61ca213 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -229,7 +229,7 @@ public class JdkUtil { vmParamsFile = FileUtil.createTempFile("idea_vm_params", null); try (PrintWriter writer = new PrintWriter(vmParamsFile)) { for (String param : vmParametersList.getList()) { - if (param.startsWith("-D")) { + if (isUserDefinedProperty(param)) { writer.println(param); } else { @@ -324,7 +324,7 @@ public class JdkUtil { if (dynamicVMOptions) { List properties = new ArrayList<>(); for (String param : vmParametersList.getList()) { - if (param.startsWith("-D")) { + if (isUserDefinedProperty(param)) { properties.add(param); } else { @@ -367,6 +367,11 @@ public class JdkUtil { return dynamicParameters; } + @SuppressWarnings("SpellCheckingInspection") + private static boolean isUserDefinedProperty(String param) { + return param.startsWith("-D") && !(param.startsWith("-Dsun.") || param.startsWith("-Djava.")); + } + private static void throwUnableToCreateTempFile(IOException cause) throws CantRunException { throw new CantRunException("Failed to a create temporary file in " + FileUtilRt.getTempDirectory(), cause); }