Bug 140274 Stack Overflow in ChangeSetModelProvider
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
index 51b34a5..2829155 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
@@ -518,13 +518,13 @@
 				List result = new ArrayList();
 				for (int i = 0; i < sets.length; i++) {
 					DiffChangeSet set = sets[i];
-					TreePath path = getPathForElement(set, resource);
+					TreePath path = getPathForElement(set, resource.getParent());
 					if (path != null)
 						result.add(path);
 				}
 				return (TreePath[]) result.toArray(new TreePath[result.size()]);
 			} else {
-				TreePath path = getPathForElement(getTheRest(), resource);
+				TreePath path = getPathForElement(getTheRest(), resource.getParent());
 				if (path != null)
 					return new TreePath[] { path };
 			}
@@ -587,6 +587,8 @@
 	}
 	
 	private List getPath(IResourceDiffTree tree, IResource resource) {
+		if (resource == null)
+			return null;
 		boolean hasDiff = tree.getDiff(resource) == null;
 		if (hasDiff && tree.members(resource).length == 0)
 			return null;