diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CDataProxy.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CDataProxy.java index 959fad180c3..6f4c4baaea6 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CDataProxy.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CDataProxy.java @@ -103,6 +103,11 @@ public abstract class CDataProxy implements ICSettingObject { fId = data.getId(); fData = data; } + + void doClearData(){ + fData = null; + setRescan(true); + } protected void checkUpdate(boolean write){ if((write && !containsWritableData()) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ProxyProvider.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ProxyProvider.java index fcae5086369..84f2fcf213b 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ProxyProvider.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/ProxyProvider.java @@ -128,6 +128,10 @@ public class ProxyProvider implements IProxyProvider { public void invalidateCache() { fProxiesCached = false; + CDataProxy[] proxies = fCache.getCachedProxies(); + for(int i = 0; i < proxies.length; i++){ + proxies[i].doClearData(); + } }