diff options
author | Michael Valenta | 2005-08-15 16:49:24 +0000 |
---|---|---|
committer | Michael Valenta | 2005-08-15 16:49:24 +0000 |
commit | 77858d80b25b81e93c51114d41d6017e1aee95ad (patch) | |
tree | 68f4c8a80f02643b3372bef2783771f40b8691c5 | |
parent | 94755f00d3bfefb1d701831c06e7cb2149dd5083 (diff) | |
download | eclipse.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.java | 14 |
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); |