filter out illegal environment variables in `GeneralCommandLine.MyTHashMap.put` ...
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Sun, 11 Jan 2015 21:06:34 +0000 (00:06 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Sun, 11 Jan 2015 21:06:34 +0000 (00:06 +0300)
platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java

index 5598abe47742a1be9fd27d9dda94cf9eb5692ae1..9eef389e66ec7ba5c0baf324f2a30203b0abb779 100644 (file)
@@ -333,11 +333,6 @@ public class GeneralCommandLine implements UserDataHolder {
         environment.putAll(myEnvParams);
       }
     }
-    if (SystemInfo.isWindows) {
-      // (Windows) An environment variable with empty name is incorrect.
-      // It'll end up in "CreateProcess error=87, The parameter is incorrect".
-      environment.remove("");
-    }
   }
 
   /**
@@ -381,9 +376,12 @@ public class GeneralCommandLine implements UserDataHolder {
         LOG.error(new Exception("Nulls are not allowed"));
         return null;
       }
-      else {
-        return super.put(key, value);
+      if (key.isEmpty()) {
+        // Windows: passing an environment variable with empty name causes "CreateProcess error=87, The parameter is incorrect"
+        LOG.warn("Skipping environment variable with empty name, value: " + value);
+        return null;
       }
+      return super.put(key, value);
     }
 
     @Override