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;