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())