Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2005-05-09 15:14:40 +0000
committerMichael Valenta2005-05-09 15:14:40 +0000
commit106811e64f8425206cbf4335769922d10068dcc3 (patch)
tree3293f575264e6693c8b2941bfd56eaece7010bb5
parent9878ae6cc9233cd2c69f3db96e442eb48362397d (diff)
downloadeclipse.platform.team-106811e64f8425206cbf4335769922d10068dcc3.tar.gz
eclipse.platform.team-106811e64f8425206cbf4335769922d10068dcc3.tar.xz
eclipse.platform.team-106811e64f8425206cbf4335769922d10068dcc3.zip
Bug 94115 AIOOBE on Compare With > Another Branch or Version...
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java39
2 files changed, 30 insertions, 11 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
index ca7f4a5e6..fe00dd7be 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/WorkspaceTraversalAction.java
@@ -31,8 +31,6 @@ import org.eclipse.ui.PlatformUI;
*/
public abstract class WorkspaceTraversalAction extends WorkspaceAction {
- private static final String SELECTED_RESOURCES_WITH_OVERLAP = "selectedResourcesWithOverlap"; //$NON-NLS-1$
-
/**
* Return the selected mappings that contain resources
* within a CVS managed project.
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
index 13e98e396..6d9c9346d 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
@@ -18,11 +18,13 @@ import java.util.List;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.compare.structuremergeviewer.IDiffContainer;
import org.eclipse.compare.structuremergeviewer.IDiffElement;
+import org.eclipse.core.internal.resources.mapping.*;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.*;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -393,18 +395,37 @@ public class Utils {
List resources = new ArrayList();
for (int i = 0; i < elements.length; i++) {
Object element = elements[i];
- IResource resource = null;
+ boolean isResource = false;
if (element instanceof IResource) {
- resource = (IResource)element;
+ resources.add(element);
+ isResource = true;
} else if (element instanceof ISynchronizeModelElement){
- resource = ((ISynchronizeModelElement) element).getResource();
+ resources.add(((ISynchronizeModelElement) element).getResource());
+ isResource = true;
+ } else if (element instanceof ResourceMapping) {
+ try {
+ ResourceTraversal[] traversals = ((ResourceMapping)element).getTraversals(ResourceMappingContext.LOCAL_CONTEXT, null);
+ for (int k = 0; k < traversals.length; k++) {
+ ResourceTraversal traversal = traversals[k];
+ IResource[] resourceArray = traversal.getResources();
+ for (int j = 0; j < resourceArray.length; j++) {
+ IResource resource = resourceArray[j];
+ resources.add(resource);
+ isResource = true;
+ }
+ }
+ } catch (CoreException e) {
+ TeamUIPlugin.log(new Status(IStatus.ERROR, TeamUIPlugin.ID, 0, "Error traversing resource mapping", e)); //$NON-NLS-1$
+ }
} else {
- resource = (IResource)getAdapter(element, IResource.class);
- if(resource != null && resource.getType() == IResource.ROOT) continue;
+ IResource resource = (IResource)getAdapter(element, IResource.class);
+ if(resource != null) {
+ if (resource.getType() == IResource.ROOT) continue;
+ resources.add(resource);
+ isResource = true;
+ }
}
- if (resource != null) {
- resources.add(resource);
- } else {
+ if (!isResource) {
if(nonResources != null)
nonResources.add(element);
}

Back to the top