Bug 65415 [Progress] Animation error refreshing branches using RC1
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
index 5e7f3a6..ee95dee 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RefreshRemoteProjectWizard.java
@@ -102,20 +102,27 @@
try {
getContainer().run(true, true, new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- monitor.beginTask(null, 100 * selectedFolders.length);
- try {
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- for (int i = 0; i < selectedFolders.length; i++) {
- ICVSRemoteResource resource = selectedFolders[i];
- if (resource instanceof ICVSFolder) {
- manager.refreshDefinedTags((ICVSFolder)resource, true /* replace */, true, Policy.subMonitorFor(monitor, 100));
+ final RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
+ // Run in the manager to avoid multiple repo view updates
+ manager.run(new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException,
+ InterruptedException {
+ monitor.beginTask(null, 100 * selectedFolders.length);
+ try {
+ for (int i = 0; i < selectedFolders.length; i++) {
+ ICVSRemoteResource resource = selectedFolders[i];
+ if (resource instanceof ICVSFolder) {
+ manager.refreshDefinedTags((ICVSFolder)resource, true /* replace */, true, Policy.subMonitorFor(monitor, 100));
+ }
+ }
+ } catch (TeamException e) {
+ throw new InvocationTargetException(e);
+ } finally {
+ monitor.done();
}
}
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
+ }, monitor);
}
});
return true;