diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java index bdb529cad5f..29764ed126a 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java @@ -298,7 +298,8 @@ public class CConfigBasedDescriptor implements ICDescriptor { } public Element getProjectData(String id) throws CoreException { - synchronized(CProjectDescriptionManager.getInstance()){ + // avoid deadlock by using different lock here. + synchronized(fStorageDataElMap /*CProjectDescriptionManager.getInstance()*/){ Element el = (Element)fStorageDataElMap.get(id); if(el == null || el.getParentNode() == null){ InternalXmlStorageElement storageEl = (InternalXmlStorageElement)fCfgDes.getStorage(id, false);