From 5f99d331f258bc2c26cce23d8b9aa71355df5c85 Mon Sep 17 00:00:00 2001 From: Michael Valenta Date: Wed, 3 Dec 2003 17:16:13 +0000 Subject: Handle RESOURCE_NOT_FOUND return code from core --- .../internal/ccvs/core/CVSSyncTreeSubscriber.java | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java index 0d078f3b9..fce0d5a2f 100644 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java +++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java @@ -306,16 +306,25 @@ public abstract class CVSSyncTreeSubscriber extends TeamSubscriber { * @see org.eclipse.team.core.sync.ISyncTreeSubscriber#isSupervised(org.eclipse.core.resources.IResource) */ public boolean isSupervised(IResource resource) throws TeamException { - RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()); - if (provider == null) return false; - // TODO: what happens for resources that don't exist? - // TODO: is it proper to use ignored here? - ICVSResource cvsThing = CVSWorkspaceRoot.getCVSResourceFor(resource); - if (cvsThing.isIgnored()) { - // An ignored resource could have an incoming addition (conflict) - return getRemoteSynchronizer().hasRemote(resource); + try { + RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()); + if (provider == null) return false; + // TODO: what happens for resources that don't exist? + // TODO: is it proper to use ignored here? + ICVSResource cvsThing = CVSWorkspaceRoot.getCVSResourceFor(resource); + if (cvsThing.isIgnored()) { + // An ignored resource could have an incoming addition (conflict) + return getRemoteSynchronizer().hasRemote(resource); + } + return true; + } catch (TeamException e) { + // If there is no resource in coe this measn there is no local and no remote + // so the resource is not supervised. + if (e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) { + return false; + } + throw e; } - return true; } /* (non-Javadoc) -- cgit v1.2.3