Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2005-08-15 16:49:24 +0000
committerMichael Valenta2005-08-15 16:49:24 +0000
commit77858d80b25b81e93c51114d41d6017e1aee95ad (patch)
tree68f4c8a80f02643b3372bef2783771f40b8691c5
parent94755f00d3bfefb1d701831c06e7cb2149dd5083 (diff)
downloadeclipse.platform.team-77858d80b25b81e93c51114d41d6017e1aee95ad.tar.gz
eclipse.platform.team-77858d80b25b81e93c51114d41d6017e1aee95ad.tar.xz
eclipse.platform.team-77858d80b25b81e93c51114d41d6017e1aee95ad.zip
Bug 99733 ResourceException when opening project
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
index be1f04e26..c163f80b9 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
@@ -239,7 +239,10 @@ public class SubscriberEventHandler extends BackgroundEventHandler {
monitor);
}
} catch (TeamException e) {
- handleException(e, resource, ITeamStatus.SYNC_INFO_SET_ERROR, NLS.bind(Messages.SubscriberEventHandler_8, new String[] { resource.getFullPath().toString(), e.getMessage() }));
+ // We only handle the exception if the resource's project is accessible.
+ // The project close delta will clean up.
+ if (resource.getProject().isAccessible())
+ handleException(e, resource, ITeamStatus.SYNC_INFO_SET_ERROR, NLS.bind(Messages.SubscriberEventHandler_8, new String[] { resource.getFullPath().toString(), e.getMessage() }));
}
}
@@ -331,6 +334,15 @@ public class SubscriberEventHandler extends BackgroundEventHandler {
new SubscriberEvent(info.getLocal(), SubscriberEvent.CHANGE, IResource.DEPTH_ZERO, info));
}
public void addError(ITeamStatus status) {
+ if (status instanceof TeamStatus) {
+ TeamStatus ts = (TeamStatus) status;
+ IResource resource = ts.getResource();
+ if (resource != null && !resource.getProject().isAccessible()) {
+ // The project was closed while we were collecting sync info.
+ // The close delta will cause us to clean up properly
+ return;
+ }
+ }
super.addError(status);
TeamPlugin.getPlugin().getLog().log(status);
syncSetInput.handleError(status);

Back to the top