From 48e2f643ac98a6db82ae237542fd009dae245e5a Mon Sep 17 00:00:00 2001 From: David Salinas Date: Tue, 20 Mar 2012 16:31:02 -0400 Subject: [PATCH] Bug 374442 - Refresh resource by build configuration - fix JUnit Tests --- .../core/resources/RefreshScopeManager.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java index 559e3cf5999..d8941f98add 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/RefreshScopeManager.java @@ -485,12 +485,35 @@ public class RefreshScopeManager { String configName = child.getAttribute(CONFIGURATION_ELEMENT_NAME); loadResourceData(workspaceRoot, project, configName, child.getChildren()); } - } + } + // else there are no children, and this is a "new" project. + // so initialize it. + if (children.length == 0) { + initializeConfigMap(project); + } } } } } + private void initializeConfigMap(IProject project) { + getProjectToConfigurationToResourcesMap(); + HashMap>> configMap = fProjToConfToResToExcluMap.get(project); + if (configMap == null) { + configMap = new HashMap>>(); + CProjectDescriptionManager descriptionManager = CProjectDescriptionManager.getInstance(); + ICProjectDescription projectDescription = descriptionManager.getProjectDescription(project, false); + ICConfigurationDescription cfgDescs[] = projectDescription.getConfigurations(); + for (ICConfigurationDescription cfgDesc : cfgDescs) { + String configName = cfgDesc.getName(); + HashMap> resourceMap = new HashMap>(); + resourceMap.put(project, new LinkedList()); + configMap.put(configName, resourceMap); + } + fProjToConfToResToExcluMap.put(project,configMap); + } + } + /** * @since 5.4 */