From b49fa6788297f923b097121d0894de3e80cefaf8 Mon Sep 17 00:00:00 2001 From: Johann Draschwandtner Date: Tue, 7 Apr 2015 12:28:48 +0200 Subject: [PATCH] Bug 464008: CNavigatorContentProvider creates new CProject instance on every invocation This sometimes leads to issues with Binaries node. Change-Id: I8f5159c14a2e8056e229582c57878f3d35342d3e Signed-off-by: Johann Draschwandtner --- .../ui/navigator/CNavigatorContentProvider.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/navigator/CNavigatorContentProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/navigator/CNavigatorContentProvider.java index c1373564fe2..daf979a6cf2 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/navigator/CNavigatorContentProvider.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/navigator/CNavigatorContentProvider.java @@ -47,6 +47,9 @@ import org.eclipse.cdt.core.model.IParent; import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.PreferenceConstants; +import org.eclipse.cdt.internal.core.model.CModel; +import org.eclipse.cdt.internal.core.model.CModelManager; + import org.eclipse.cdt.internal.ui.cview.CViewContentProvider; /** @@ -233,7 +236,12 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I if (element instanceof IWorkspaceRoot) { return ((IWorkspaceRoot)element).getProjects(); } else if (element instanceof IProject) { - return super.getChildren(CoreModel.getDefault().create((IProject)element)); + CModel cModel = CModelManager.getDefault().getCModel(); + ICProject prj = cModel.findCProject((IProject)element); + if(prj == null) { + prj = CoreModel.getDefault().create((IProject)element); + } + return super.getChildren(prj); } else { children = super.getChildren(element); }