From 2912b67a36af50abc20ba6bc944481ff45b61f6f Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Mon, 18 Jun 2007 13:34:12 +0000 Subject: [PATCH] Fix for 193088 by Gerhard Schaber, NPE using workspace-root as include entry. --- .../core/scannerconfig/util/CCommandDSC.java | 18 ++++++++++-------- .../internal/ui/cview/CViewLabelProvider.java | 5 ++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/CCommandDSC.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/CCommandDSC.java index 945f41aa2f4..cb33f2c11f4 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/CCommandDSC.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/CCommandDSC.java @@ -402,23 +402,25 @@ public class CCommandDSC { } private static IResource findResource(IProject project, IPath path) { - IResource resource = project.findMember(path, true); + IResource resource = project.findMember(path, false); if (resource == null) { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - resource = root.findMember(path, true); + resource = root.findMember(path, false); if (resource == null) { IResource[] resources = root.findFilesForLocation(path); - if (resources != null) { + if (project != null) { for (int i = 0; i < resources.length; i++) { - if (resources[i].getProject() == project) { + final IProject myProject = resources[i].getProject(); + // resource could be root, then myProject is null. + if (myProject != null && myProject.equals(project)) { resource = resources[i]; break; } } - // make a relative path to another project (better than an absolute path) - if (resource == null && resources.length > 0) { - resource = resources[0]; - } + } + // make a relative path to another project (better than an absolute path) + if (resource == null && resources.length > 0) { + resource = resources[0]; } } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java index 6f455de7175..b517ef5eb55 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewLabelProvider.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.internal.ui.cview; import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; @@ -52,7 +53,9 @@ public class CViewLabelProvider extends AppearanceAwareLabelProvider { if (prj != null) { for (int i = 0; i < containers.length; i++) { final IContainer container = containers[i]; - if (container.getProject().equals(prj.getProject())) { + final IProject project = container.getProject(); + // in case the path is empty, the container is the workspace root and project is null. + if (project != null && project.equals(prj.getProject())) { return container.getFullPath().makeRelative().toString(); } }