1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-13 03:05:39 +02:00

bug 357442: Protect EnvVarCollector against NPE when array of environment variables contains null

This commit is contained in:
Andrew Gvozdev 2013-03-10 07:05:35 -04:00
parent 180b192054
commit e034731fee

View file

@ -49,26 +49,28 @@ public class EnvVarCollector {
boolean isCaseInsensitive = !EnvironmentVariableManager.getDefault().isVariableCaseSensitive(); boolean isCaseInsensitive = !EnvironmentVariableManager.getDefault().isVariableCaseSensitive();
for(int i = 0; i < vars.length; i ++) { for(int i = 0; i < vars.length; i ++) {
IEnvironmentVariable var = vars[i]; IEnvironmentVariable var = vars[i];
String name = var.getName(); if (var != null) {
if(isCaseInsensitive) String name = var.getName();
name = name.toUpperCase(); if(isCaseInsensitive)
name = name.toUpperCase();
boolean noCheck = false; boolean noCheck = false;
if(fMap == null){ if(fMap == null){
noCheck = true; noCheck = true;
fMap = new HashMap<String, EnvVarDescriptor>(); fMap = new HashMap<String, EnvVarDescriptor>();
} }
EnvVarDescriptor des = null; EnvVarDescriptor des = null;
if(noCheck || (des = fMap.get(name)) == null){ if(noCheck || (des = fMap.get(name)) == null){
des = new EnvVarDescriptor(var,info,num, supplier); des = new EnvVarDescriptor(var,info,num, supplier);
fMap.put(name,des); fMap.put(name,des);
} }
else { else {
des.setContextInfo(info); des.setContextInfo(info);
des.setSupplierNum(num); des.setSupplierNum(num);
des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var)); des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var));
}
} }
} }
} }