src/windows/classes/java/lang/ProcessEnvironment.java

Print this page

        

*** 142,151 **** --- 142,152 ---- } public void remove() { i.remove();} }; } private static Map.Entry<String,String> checkedEntry (Object o) { + @SuppressWarnings("unchecked") Map.Entry<String,String> e = (Map.Entry<String,String>) o; nonNullString(e.getKey()); nonNullString(e.getValue()); return e; }
*** 293,303 **** private static native String environmentBlock(); // Only for use by ProcessImpl.start() String toEnvironmentBlock() { // Sort Unicode-case-insensitively by name ! List<Map.Entry<String,String>> list = new ArrayList<>(entrySet()); Collections.sort(list, entryComparator); StringBuilder sb = new StringBuilder(size()*30); for (Map.Entry<String,String> e : list) sb.append(e.getKey()) --- 294,323 ---- private static native String environmentBlock(); // Only for use by ProcessImpl.start() String toEnvironmentBlock() { // Sort Unicode-case-insensitively by name ! Set<Map.Entry<String,String>> entries = entrySet(); ! List<Map.Entry<String,String>> list = new ArrayList<>(entries); ! ! // check for "SystemRoot". Needed by MSVCRT.DLL ! // Environment variable names are case-insensitive. ! // So, must do an iterative search. ! boolean found = false; ! for (Map.Entry<String,String> entry : entries) { ! String key = entry.getKey(); ! if (key.equalsIgnoreCase("SystemRoot")) { ! found = true; ! break; ! } ! } ! if (!found) { ! list.add(new AbstractMap.SimpleEntry<String,String>( ! "SystemRoot", getenv("SystemRoot")) ! ); ! } ! Collections.sort(list, entryComparator); StringBuilder sb = new StringBuilder(size()*30); for (Map.Entry<String,String> e : list) sb.append(e.getKey())