diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java')
-rw-r--r-- | core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java index ccdf7279142..89d2dc6fb9e 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/build/CBuildConfigurationManager.java @@ -160,15 +160,18 @@ public class CBuildConfigurationManager String configName, IProgressMonitor monitor) throws CoreException { String name = provider.getId() + '/' + configName; - Set<String> names = new HashSet<>(); - for (IBuildConfiguration config : project.getBuildConfigs()) { - names.add(config.getName()); - } + CoreModel m = CoreModel.getDefault(); + synchronized (m) { + Set<String> names = new HashSet<>(); + for (IBuildConfiguration config : project.getBuildConfigs()) { + names.add(config.getName()); + } - IProjectDescription desc = project.getDescription(); - names.add(name); - desc.setBuildConfigs(names.toArray(new String[names.size()])); - project.setDescription(desc, monitor); + IProjectDescription desc = project.getDescription(); + names.add(name); + desc.setBuildConfigs(names.toArray(new String[names.size()])); + project.setDescription(desc, monitor); + } return project.getBuildConfig(name); } |