Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2003-09-12 14:14:52 +0000
committerMichael Valenta2003-09-12 14:14:52 +0000
commit75977c98b8a5603f4ca18aaf139e7ce37822e915 (patch)
tree8ef5c3edd2b98bd19e85a7dd44c2d19b6720d808 /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
parent47f1ae02d708b621d78bc04f3e303176dc507ff4 (diff)
downloadeclipse.platform.team-75977c98b8a5603f4ca18aaf139e7ce37822e915.tar.gz
eclipse.platform.team-75977c98b8a5603f4ca18aaf139e7ce37822e915.tar.xz
eclipse.platform.team-75977c98b8a5603f4ca18aaf139e7ce37822e915.zip
41578: Error fetching children of HEAD
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
index 954501adb..6a1b436d5 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoveRootAction.java
@@ -13,8 +13,10 @@ package org.eclipse.team.internal.ccvs.ui.repo;
import java.util.ArrayList;
import java.util.Iterator;
+import org.eclipse.core.internal.jobs.JobManager;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.RepositoryProvider;
@@ -24,6 +26,7 @@ import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
import org.eclipse.team.internal.ccvs.ui.Policy;
import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
+import org.eclipse.team.internal.ccvs.ui.model.RepositoryLocationSchedulingRule;
import org.eclipse.team.internal.ui.dialogs.DetailsDialogWithProjects;
import org.eclipse.ui.actions.SelectionListenerAction;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
@@ -34,10 +37,12 @@ import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
*/
public class RemoveRootAction extends SelectionListenerAction {
private IStructuredSelection selection;
- private Shell shell;
+ /* internal use only */ Shell shell;
+ private RepositoriesView view;
- public RemoveRootAction(Shell shell) {
+ public RemoveRootAction(Shell shell, RepositoriesView view) {
super(Policy.bind("RemoteRootAction.label")); //$NON-NLS-1$
+ this.view = view;
this.shell = shell;
}
@@ -104,7 +109,14 @@ public class RemoveRootAction extends SelectionListenerAction {
}
});
} else {
- provider.disposeRepository(roots[i]);
+ ISchedulingRule rule = new RepositoryLocationSchedulingRule(roots[i]);
+ JobManager.getInstance().beginRule(rule);
+ try {
+ view.getContentProvider().cancelJobs(roots[i]);
+ provider.disposeRepository(roots[i]);
+ } finally {
+ JobManager.getInstance().endRule(rule);
+ }
}
} catch (CVSException e) {
CVSUIPlugin.log(e);

Back to the top