From e034731fee40a363a2a40f3f843890357e506abb Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Sun, 10 Mar 2013 07:05:35 -0400 Subject: [PATCH] bug 357442: Protect EnvVarCollector against NPE when array of environment variables contains null --- .../internal/core/envvar/EnvVarCollector.java | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java index 9538ddbcdff..eeb88c41b0f 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java @@ -49,26 +49,28 @@ public class EnvVarCollector { boolean isCaseInsensitive = !EnvironmentVariableManager.getDefault().isVariableCaseSensitive(); for(int i = 0; i < vars.length; i ++) { IEnvironmentVariable var = vars[i]; - String name = var.getName(); - if(isCaseInsensitive) - name = name.toUpperCase(); - - boolean noCheck = false; - - if(fMap == null){ - noCheck = true; - fMap = new HashMap(); - } - - EnvVarDescriptor des = null; - if(noCheck || (des = fMap.get(name)) == null){ - des = new EnvVarDescriptor(var,info,num, supplier); - fMap.put(name,des); - } - else { - des.setContextInfo(info); - des.setSupplierNum(num); - des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var)); + if (var != null) { + String name = var.getName(); + if(isCaseInsensitive) + name = name.toUpperCase(); + + boolean noCheck = false; + + if(fMap == null){ + noCheck = true; + fMap = new HashMap(); + } + + EnvVarDescriptor des = null; + if(noCheck || (des = fMap.get(name)) == null){ + des = new EnvVarDescriptor(var,info,num, supplier); + fMap.put(name,des); + } + else { + des.setContextInfo(info); + des.setSupplierNum(num); + des.setVariable(EnvVarOperationProcessor.performOperation(des.getOriginalVariable(),var)); + } } } }