From 1766b2738d33a729d2a100d85de88c22dc59b48b Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Thu, 2 Feb 2012 22:31:22 +0400 Subject: [PATCH] IDEA-77160 (${env.PATH} variable highlighted as red error) --- .../idea/maven/server/MavenServerUtil.java | 66 +++++++++---------- 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerUtil.java b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerUtil.java index 4c0f8ae999f5..10694492f10a 100644 --- a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerUtil.java +++ b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerUtil.java @@ -15,49 +15,43 @@ */ package org.jetbrains.idea.maven.server; -import java.util.HashSet; -import java.util.Map; -import java.util.Properties; -import java.util.Set; +import com.intellij.openapi.util.SystemInfo; + +import java.util.*; public class MavenServerUtil { - private static volatile Properties mySystemPropertiesCache; + private static final Properties mySystemPropertiesCache; + + static { + Properties res = new Properties(); + res.putAll(System.getProperties()); + + for (Iterator itr = res.keySet().iterator(); itr.hasNext(); ) { + String propertyName = itr.next().toString(); + if (propertyName.startsWith("idea.")) { + itr.remove(); + } + } + + for (Map.Entry entry : System.getenv().entrySet()) { + String key = entry.getKey(); + + if (isMagicalProperty(key)) continue; + + if (SystemInfo.isWindows) { + key = key.toUpperCase(); + } + + res.setProperty("env." + key, entry.getValue()); + } + + mySystemPropertiesCache = res; + } public static Properties collectSystemProperties() { - if (mySystemPropertiesCache == null) { - Properties result = new Properties(); - result.putAll(getSystemProperties()); - - Properties envVars = getEnvProperties(); - for (Map.Entry each : envVars.entrySet()) { - result.setProperty("env." + each.getKey().toString(), each.getValue().toString()); - } - mySystemPropertiesCache = result; - } - return mySystemPropertiesCache; } - @SuppressWarnings({"unchecked"}) - private static Properties getSystemProperties() { - Properties result = (Properties)System.getProperties().clone(); - for (String each : new HashSet((Set)result.keySet())) { - if (each.startsWith("idea.")) { - result.remove(each); - } - } - return result; - } - - private static Properties getEnvProperties() { - Properties result = new Properties(); - for (Map.Entry each : System.getenv().entrySet()) { - if (isMagicalProperty(each.getKey())) continue; - result.put(each.getKey(), each.getValue()); - } - return result; - } - private static boolean isMagicalProperty(String key) { return key.startsWith("="); }