Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-05-13 01:37:25 +0000
committerMichael Valenta2002-05-13 01:37:25 +0000
commit854072ef398e85722eb4bb6ddfbfb4d9f54ac7b5 (patch)
treed175a0f7433b8a36c6111195bdcf6f5b9e3689ce
parent6a06d166017343297508c806502a65307ff51a8c (diff)
downloadeclipse.platform.team-854072ef398e85722eb4bb6ddfbfb4d9f54ac7b5.tar.gz
eclipse.platform.team-854072ef398e85722eb4bb6ddfbfb4d9f54ac7b5.tar.xz
eclipse.platform.team-854072ef398e85722eb4bb6ddfbfb4d9f54ac7b5.zip
13971: Need to refresh not obvious from errors in log
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java52
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java12
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java10
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java10
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AddDeleteMoveListener.java17
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java20
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorationRunnable.java7
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java18
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java46
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java36
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties1
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/AddSyncAction.java8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java10
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java54
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CommitSyncAction.java12
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/IgnoreAction.java8
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java4
25 files changed, 228 insertions, 117 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
index 4bbe3d03c..760a7946a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
@@ -209,29 +209,38 @@ public class CVSTeamProvider extends RepositoryProvider {
}
// Auto-add children
+ final TeamException[] exception = new TeamException[] { null };
currentResource.accept(new IResourceVisitor() {
public boolean visit(IResource resource) {
- ICVSResource mResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- // Add the resource is its not already managed and it was either
- // added explicitly (is equal currentResource) or is not ignored
- if (! mResource.isManaged() && (currentResource.equals(resource) || ! mResource.isIgnored())) {
- String name = resource.getProjectRelativePath().toString();
- if (resource.getType() == IResource.FILE) {
- KSubstOption ksubst = KSubstOption.fromFile((IFile) resource);
- Set set = (Set) files.get(ksubst);
- if (set == null) {
- set = new HashSet();
- files.put(ksubst, set);
+ try {
+ ICVSResource mResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
+ // Add the resource is its not already managed and it was either
+ // added explicitly (is equal currentResource) or is not ignored
+ if (! mResource.isManaged() && (currentResource.equals(resource) || ! mResource.isIgnored())) {
+ String name = resource.getProjectRelativePath().toString();
+ if (resource.getType() == IResource.FILE) {
+ KSubstOption ksubst = KSubstOption.fromFile((IFile) resource);
+ Set set = (Set) files.get(ksubst);
+ if (set == null) {
+ set = new HashSet();
+ files.put(ksubst, set);
+ }
+ set.add(name);
+ } else {
+ folders.add(name);
}
- set.add(name);
- } else {
- folders.add(name);
}
+ // Always return true and let the depth determine if children are visited
+ return true;
+ } catch (CVSException e) {
+ exception[0] = e;
+ return false;
}
- // Always return true and let the depth determine if children are visited
- return true;
}
}, depth, false);
+ if (exception[0] != null) {
+ throw exception[0];
+ }
} catch (CoreException e) {
throw new CVSException(new Status(IStatus.ERROR, CVSProviderPlugin.ID, TeamException.UNABLE, Policy.bind("CVSTeamProvider.visitError", new Object[] {resources[i].getFullPath()}), e)); //$NON-NLS-1$
}
@@ -360,6 +369,8 @@ public class CVSTeamProvider extends RepositoryProvider {
((IFile)resource).delete(false, true, subProgress);
}
}
+ } catch (TeamException e) {
+ eHolder[0] = e;
} catch (CoreException e) {
eHolder[0] = wrapException(e);
// If there was a problem, don't visit the children
@@ -521,15 +532,6 @@ public class CVSTeamProvider extends RepositoryProvider {
}
}
- /**
- * @see ITeamProvider#isLocallyCheckedOut(IResource)
- * XXX to be removed when sync methods are removed from ITeamProvider
- */
- public boolean isCheckedOut(IResource resource) {
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- return cvsResource.isManaged();
- }
-
/*
* Use specialiazed tagging to move all local changes (including additions and
* deletions) to the specified branch.
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java
index 9eb204404..304bf34c0 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSFolder.java
@@ -125,7 +125,7 @@ public interface ICVSFolder extends ICVSResource {
* folder is deleted.
* Creating the folder will result in a folder that is mapped to a remote folder.
*/
- public boolean isCVSFolder();
+ public boolean isCVSFolder() throws CVSException;
/**
* Runs the given action as an atomic cvs local workspace operation
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java
index 49802a66d..1e79b6be6 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/ICVSResource.java
@@ -39,7 +39,7 @@ public interface ICVSResource {
*
* @return <code>true</code> if the resource is
*/
- public boolean isManaged();
+ public boolean isManaged() throws CVSException;
/**
* Unmanage the given resource by purging any CVS synchronization associated with the
@@ -57,7 +57,7 @@ public interface ICVSResource {
* @return <code>true</code> if this resource is listed in one of the ignore
* files maintained by CVS and <code>false</code> otherwise.
*/
- public boolean isIgnored();
+ public boolean isIgnored() throws CVSException;
/**
* Add the following file to the parent's ignore list
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
index f80e22fa3..a46e08aef 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java
@@ -65,7 +65,7 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor {
* is not considered orphaned even if it is not managed by its
* parent.
*/
- protected boolean isOrphanedSubtree(ICVSFolder mFolder) {
+ protected boolean isOrphanedSubtree(ICVSFolder mFolder) throws CVSException {
return mFolder.isCVSFolder() && ! mFolder.isManaged() && ! mFolder.equals(session.getLocalRoot()) && mFolder.getParent().isCVSFolder();
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
index d4f9450f9..10800731e 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Command.java
@@ -713,7 +713,7 @@ public abstract class Command extends Request {
}
}
- protected Session getOpenSession(ICVSResource[] arguments) {
+ protected Session getOpenSession(ICVSResource[] arguments) throws CVSException {
// We assume that all the passed resources have the same root
Session openSession;
if (arguments == null || arguments.length == 0) {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
index 15f729538..35c546d4e 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/Session.java
@@ -225,7 +225,7 @@ public class Session {
/**
* Answer the currently open session
*/
- protected static Session getOpenSession(ICVSResource resource) {
+ protected static Session getOpenSession(ICVSResource resource) throws CVSException {
ICVSFolder root;
if (resource.isFolder()) {
root = (ICVSFolder)resource;
@@ -490,7 +490,7 @@ public class Session {
return location;
}
- private IContainer getIResourceFor(ICVSFolder cvsFolder) throws CoreException {
+ private IContainer getIResourceFor(ICVSFolder cvsFolder) throws CoreException, CVSException {
if (cvsFolder.isManaged()) {
return getIResourceFor(cvsFolder.getParent()).getFolder(new Path(cvsFolder.getName()));
} else {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java
index 74f1a2d15..85914c55d 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/CVSRemoteSyncElement.java
@@ -281,8 +281,14 @@ public class CVSRemoteSyncElement extends RemoteSyncElement {
IResource local = getLocal();
ICVSRemoteFolder remote = (ICVSRemoteFolder)getRemote();
ICVSFolder cvsFolder = (ICVSFolder)localSync.getCVSResource();
+ boolean isCVSFolder = false;
+ try {
+ isCVSFolder = cvsFolder.isCVSFolder();
+ } catch (CVSException e) {
+ // Assume the folder is not a CVS folder
+ }
if(!local.exists()) {
- if ( cvsFolder.isCVSFolder()) {
+ if (isCVSFolder) {
// We have local information for the folder but it doesn't exist
if (remote == null) {
// Conflicting deletion. Purge local information
@@ -302,12 +308,12 @@ public class CVSRemoteSyncElement extends RemoteSyncElement {
}
} else {
if(remote == null) {
- if(cvsFolder.isCVSFolder()) {
+ if(isCVSFolder) {
folderKind = IRemoteSyncElement.INCOMING | IRemoteSyncElement.DELETION;
} else {
folderKind = IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION;
}
- } else if(!cvsFolder.isCVSFolder()) {
+ } else if(!isCVSFolder) {
folderKind = IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION;
} else {
// folder exists both locally and remotely and are considered in sync, however
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
index c1c3984c8..822fd203c 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
@@ -187,12 +187,8 @@ class EclipseFolder extends EclipseResource implements ICVSFolder {
/*
* @see ICVSFolder#isCVSFolder()
*/
- public boolean isCVSFolder() {
- try {
- return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource) != null;
- } catch(CVSException e) {
- return false;
- }
+ public boolean isCVSFolder() throws CVSException {
+ return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource) != null;
}
/*
@@ -236,7 +232,7 @@ class EclipseFolder extends EclipseResource implements ICVSFolder {
/*
* @see ICVSResource#isIgnored()
*/
- public boolean isIgnored() {
+ public boolean isIgnored() throws CVSException {
if(isCVSFolder()) {
return false;
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java
index 7e5a318bb..a58801fef 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseResource.java
@@ -109,7 +109,7 @@ abstract class EclipseResource implements ICVSResource {
/*
* @see ICVSResource#isIgnored()
*/
- public boolean isIgnored() {
+ public boolean isIgnored() throws CVSException {
// a managed resource is never ignored
if(isManaged() || resource.getType()==IResource.ROOT || resource.getType()==IResource.PROJECT) {
return false;
@@ -173,12 +173,8 @@ abstract class EclipseResource implements ICVSResource {
/*
* @see ICVSResource#isManaged()
*/
- public boolean isManaged() {
- try {
- return getSyncInfo() != null;
- } catch(CVSException e) {
- return false;
- }
+ public boolean isManaged() throws CVSException {
+ return getSyncInfo() != null;
}
/**
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
index 987b08834..2af9afe84 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteFolderTreeBuilder.java
@@ -703,7 +703,7 @@ public class RemoteFolderTreeBuilder {
return tag == null ? folder.getFolderSyncInfo().getTag() : tag;
}
- private boolean isOrphanedSubtree(Session session, ICVSFolder mFolder) {
+ private boolean isOrphanedSubtree(Session session, ICVSFolder mFolder) throws CVSException {
return mFolder.isCVSFolder() && ! mFolder.isManaged() && ! mFolder.equals(session.getLocalRoot()) && mFolder.getParent().isCVSFolder();
}
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AddDeleteMoveListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AddDeleteMoveListener.java
index ac191f878..595bf2d22 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AddDeleteMoveListener.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/AddDeleteMoveListener.java
@@ -188,8 +188,13 @@ public class AddDeleteMoveListener implements IResourceDeltaVisitor, IResourceCh
if (resource.getType() == IResource.PROJECT) return;
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
// Make sure that unmanaged resources whose parent is a cvs folder have an addition task on them
- if ( ! cvsResource.isManaged() && ! cvsResource.isIgnored() && cvsResource.getParent().isCVSFolder()) {
- createAdditonMarker(resource);
+ try {
+ if ( ! cvsResource.isManaged() && ! cvsResource.isIgnored() && cvsResource.getParent().isCVSFolder()) {
+ createAdditonMarker(resource);
+ }
+ } catch (CVSException e) {
+ // If the above fails, just log the exception
+ CVSProviderPlugin.log(e.getStatus());
}
}
@@ -205,12 +210,12 @@ public class AddDeleteMoveListener implements IResourceDeltaVisitor, IResourceCh
// Make sure that the project is a CVS folder.
if (provider != null) {
ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(resource.getProject());
- if (! folder.isCVSFolder()) {
- try {
+ try {
+ if (! folder.isCVSFolder()) {
Team.removeNatureFromProject(resource.getProject(), CVSProviderPlugin.getTypeId(), null);
- } catch (TeamException e) {
- CVSProviderPlugin.log(e.getStatus());
}
+ } catch (TeamException e) {
+ CVSProviderPlugin.log(e.getStatus());
}
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java
index e1aa89f43..d15f66516 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/MoveDeleteHook.java
@@ -160,8 +160,8 @@ public class MoveDeleteHook implements IMoveDeleteHook {
IProgressMonitor monitor) {
final ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
- if (cvsFolder.isManaged()) {
- try {
+ try {
+ if (cvsFolder.isManaged()) {
cvsFolder.run(new ICVSRunnable() {
public void run(IProgressMonitor monitor) throws CVSException {
try {
@@ -171,10 +171,10 @@ public class MoveDeleteHook implements IMoveDeleteHook {
}
}
}, monitor);
- } catch (CVSException e) {
- tree.failed(e.getStatus());
+ return true;
}
- return true;
+ } catch (CVSException e) {
+ tree.failed(e.getStatus());
}
return false;
}
@@ -223,8 +223,8 @@ public class MoveDeleteHook implements IMoveDeleteHook {
IProgressMonitor monitor) {
final ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(source);
- if (cvsFolder.isManaged()) {
- try {
+ try {
+ if (cvsFolder.isManaged()) {
cvsFolder.run(new ICVSRunnable() {
public void run(IProgressMonitor monitor) throws CVSException {
try {
@@ -234,10 +234,10 @@ public class MoveDeleteHook implements IMoveDeleteHook {
}
}
}, monitor);
- } catch (CVSException e) {
- tree.failed(e.getStatus());
+ return true;
}
- return true;
+ } catch (CVSException e) {
+ tree.failed(e.getStatus());
}
return false;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorationRunnable.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorationRunnable.java
index a23fb0bd3..e3577eda4 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorationRunnable.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorationRunnable.java
@@ -120,7 +120,12 @@ public class CVSDecorationRunnable implements Runnable {
// if the resource is ignored return an empty decoration. This will
// force a decoration update event and clear the existing CVS decoration.
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if(cvsResource.isIgnored()) {
+ try {
+ if(cvsResource.isIgnored()) {
+ return new CVSDecoration();
+ }
+ } catch (CVSException e) {
+ // The was an exception in isIgnored. Don't decorate
return new CVSDecoration();
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
index eac66fc09..a13674aa2 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSDecorator.java
@@ -481,13 +481,19 @@ public class CVSDecorator extends LabelProvider implements ILabelDecorator, IRes
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- if (!cvsResource.isManaged()) {
- if (cvsResource.isIgnored()) {
- return false;
- } else {
- // new resource, show as dirty
- throw DECORATOR_EXCEPTION;
+ try {
+ if (!cvsResource.isManaged()) {
+ if (cvsResource.isIgnored()) {
+ return false;
+ } else {
+ // new resource, show as dirty
+ throw DECORATOR_EXCEPTION;
+ }
}
+ } catch (CVSException e) {
+ // isManaged threw an exception
+ CVSUIPlugin.log(e.getStatus());
+ return false;
}
if (!cvsResource.isFolder()) {
if(isDirty((ICVSFile) cvsResource)) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java
index 97e2be58e..48662edd0 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSProjectPropertiesPage.java
@@ -270,9 +270,9 @@ public class CVSProjectPropertiesPage extends PropertyPage {
if (provider == null) return;
CVSWorkspaceRoot cvsRoot = provider.getCVSWorkspaceRoot();
ICVSFolder folder = cvsRoot.getLocalRoot();
- if (!folder.isCVSFolder()) return;
try {
+ if (!folder.isCVSFolder()) return;
methodLabel.setText(location.getMethod().getName());
info = location.getUserInfo(true);
userLabel.setText(info.getUsername());
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
index ee44b691f..82369d0e1 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java
@@ -11,10 +11,10 @@
package org.eclipse.team.internal.ccvs.ui;
-import java.util.Hashtable;
import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Hashtable;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceStatus;
@@ -24,6 +24,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -40,14 +41,14 @@ import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.util.AddDeleteMoveListener;
import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
+import org.eclipse.team.internal.ccvs.core.util.AddDeleteMoveListener;
import org.eclipse.team.internal.ccvs.ui.model.CVSAdapterFactory;
import org.eclipse.team.ui.TeamUIPlugin;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
/**
* UI Plugin for CVS provider-specific workbench functionality.
@@ -127,12 +128,26 @@ public class CVSUIPlugin extends AbstractUIPlugin implements IPropertyChangeList
}
/**
+ * Extract or convert to a TeamException
+ */
+ public static TeamException asTeamException(InvocationTargetException e) {
+ Throwable exception = e.getTargetException();
+ if (exception instanceof TeamException) {
+ return (TeamException)exception;
+ } else if (exception instanceof CoreException) {
+ return new TeamException(((CoreException)exception).getStatus());
+ } else {
+ return new TeamException(new Status(IStatus.ERROR, CVSUIPlugin.ID, 0, Policy.bind("internal"), exception)); //$NON-NLS-1$
+ }
+ }
+
+ /**
* Run an operation involving the given resource. If an exception is thrown
* and the code on the status is IResourceStatus.OUT_OF_SYNC_LOCAL then
* the user will be prompted to refresh and try again. If they agree, then the
* supplied operation will be run again.
*/
- public static void runWithRefresh(Shell parent, IResource resource,
+ public static void runWithRefresh(Shell parent, IResource[] resources,
IRunnableWithProgress runnable, IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
boolean firstTime = true;
@@ -151,9 +166,11 @@ public class CVSUIPlugin extends AbstractUIPlugin implements IPropertyChangeList
throw e;
}
if (status.getCode() == IResourceStatus.OUT_OF_SYNC_LOCAL) {
- if (promptToRefresh(parent, resource, status)) {
+ if (promptToRefresh(parent, resources, status)) {
try {
- resource.refreshLocal(IResource.DEPTH_INFINITE, null);
+ for (int i = 0; i < resources.length; i++) {
+ resources[i].refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
} catch (CoreException coreEx) {
// Throw the original exception to the caller
log(coreEx.getStatus());
@@ -172,7 +189,7 @@ public class CVSUIPlugin extends AbstractUIPlugin implements IPropertyChangeList
}
}
- private static boolean promptToRefresh(final Shell shell, final IResource resource, final IStatus status) {
+ private static boolean promptToRefresh(final Shell shell, final IResource[] resources, final IStatus status) {
final boolean[] result = new boolean[] { false};
Runnable runnable = new Runnable() {
public void run() {
@@ -180,15 +197,16 @@ public class CVSUIPlugin extends AbstractUIPlugin implements IPropertyChangeList
if (shell == null) {
shellToUse = new Shell(Display.getCurrent());
}
- result[0] = MessageDialog.openQuestion(shellToUse, Policy.bind("CVSUIPlugin.refreshTitle"),
- Policy.bind("CVSUIPlugin.refreshQuestion", status.getMessage(), resource.getFullPath().toString()));
+ String question;
+ if (resources.length == 1) {
+ question = Policy.bind("CVSUIPlugin.refreshQuestion", status.getMessage(), resources[0].getFullPath().toString());
+ } else {
+ question = Policy.bind("CVSUIPlugin.refreshMultipleQuestion", status.getMessage());
+ }
+ result[0] = MessageDialog.openQuestion(shellToUse, Policy.bind("CVSUIPlugin.refreshTitle"), question);
}
};
- if (shell == null) {
- Display.getDefault().syncExec(runnable);
- } else {
- runnable.run();
- }
+ Display.getDefault().syncExec(runnable);
return result[0];
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java
index 00beee131..2d4687c52 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CVSAction.java
@@ -18,13 +18,16 @@ import java.util.List;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
@@ -352,4 +355,37 @@ abstract public class CVSAction extends TeamAction {
}
return okToContinue[0];
}
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(final IAction action, ISelection selection) {
+ if (selection instanceof IStructuredSelection) {
+ this.selection = (IStructuredSelection) selection;
+ if (action != null) {
+ try {
+ CVSUIPlugin.runWithRefresh(getShell(), getSelectedResources(), new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ try {
+ action.setEnabled(CVSAction.this.isEnabled());
+ } catch (TeamException e) {
+ throw new InvocationTargetException(e);
+ }
+ }
+ }, null);
+ } catch (InvocationTargetException e) {
+ action.setEnabled(false);
+ // We should not open a dialog when determining menu enablements so log it instead
+ CVSUIPlugin.log(CVSUIPlugin.asTeamException(e).getStatus());
+ } catch (InterruptedException e) {
+ action.setEnabled(false);
+ }
+ }
+ }
+ }
+
+ /**
+ * @see TeamAction#isEnabled()
+ */
+ protected abstract boolean isEnabled() throws TeamException;
+
} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
index e87deb0d0..ab3af0a5d 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties
@@ -201,6 +201,7 @@ CVSSyncCompareInput.confirmMergeMessage=Your changes have been saved. You can co
CVSUIPlugin.refreshTitle=Refresh Resource?
CVSUIPlugin.refreshQuestion={0} Would you like to refresh resource ''{1}''?
+CVSUIPlugin.refreshMultipleQuestion={0} Would you like to refresh the selected resources?
CheckoutAsAction.checkoutFailed=Problems encountered performing checkout
CheckoutAsAction.enterProjectTitle=Check Out {0} As...
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/AddSyncAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/AddSyncAction.java
index 807450043..c5d40e5f0 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/AddSyncAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/AddSyncAction.java
@@ -34,6 +34,7 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.sync.IRemoteSyncElement;
+import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSFile;
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
@@ -106,7 +107,12 @@ public class AddSyncAction extends MergeAction {
* Enabled for folders and files that aren't added.
*/
protected boolean isEnabled(ITeamNode node) {
- return new CVSSyncSet(new StructuredSelection(node)).hasNonAddedChanges();
+ try {
+ return new CVSSyncSet(new StructuredSelection(node)).hasNonAddedChanges();
+ } catch (CVSException e) {
+ CVSUIPlugin.log(e.getStatus());
+ return false;
+ }
}
/**
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java
index 6d400a259..15482ff17 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncCompareInput.java
@@ -21,6 +21,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Composite;
@@ -271,6 +272,9 @@ public class CVSSyncCompareInput extends SyncCompareInput {
/**
* Wrap the input preparation in a CVS session run so open sessions will be reused and
* file contents under the same remote root folder will be fetched using the same connection.
+ *
+ * Also run with refresh prompting if one of the resources is out of sync with the local
+ * file system.
*/
public Object prepareInput(IProgressMonitor pm) throws InterruptedException, InvocationTargetException {
final Object[] result = new Object[] { null };
@@ -279,7 +283,11 @@ public class CVSSyncCompareInput extends SyncCompareInput {
Session.run(null, null, false, new ICVSRunnable() {
public void run(IProgressMonitor monitor) throws CVSException {
try {
- result[0] = CVSSyncCompareInput.super.prepareInput(monitor);
+ CVSUIPlugin.runWithRefresh(getShell(), resources, new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ result[0] = CVSSyncCompareInput.super.prepareInput(monitor);
+ }
+ }, monitor);
} catch (InterruptedException e) {
exception[0] = e;
} catch (InvocationTargetException e) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java
index c7cb9161f..80a6568ad 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CVSSyncSet.java
@@ -9,9 +9,11 @@ import java.util.Iterator;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.team.core.sync.IRemoteSyncElement;
+import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
+import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ui.sync.ITeamNode;
import org.eclipse.team.internal.ui.sync.SyncSet;
@@ -29,7 +31,7 @@ public class CVSSyncSet extends SyncSet {
super(nodeSelection);
}
- public boolean hasNonAddedChanges() {
+ public boolean hasNonAddedChanges() throws CVSException {
for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
ITeamNode node = (ITeamNode)it.next();
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
@@ -44,7 +46,7 @@ public class CVSSyncSet extends SyncSet {
return false;
}
- public boolean hasCommitableChanges() {
+ public boolean hasCommitableChanges() throws CVSException {
for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
ITeamNode node = (ITeamNode)it.next();
// outgoing file that is added is a commit candidate
@@ -60,16 +62,22 @@ public class CVSSyncSet extends SyncSet {
public boolean removeNonAddedChanges() {
for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
- ITeamNode node = (ITeamNode)it.next();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if(cvsResource.isFolder()) {
- if(!((ICVSFolder)cvsResource).isCVSFolder()) {
- it.remove();
- }
- } else {
- if(!cvsResource.isManaged()) {
- it.remove();
+ try {
+ ITeamNode node = (ITeamNode)it.next();
+ ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
+ if(cvsResource.isFolder()) {
+ if(!((ICVSFolder)cvsResource).isCVSFolder()) {
+ it.remove();
+ }
+ } else {
+ if(!cvsResource.isManaged()) {
+ it.remove();
+ }
}
+ } catch (CVSException e) {
+ // isManaged or isCVSFolder threw an exception
+ // Log it and continue
+ CVSUIPlugin.log(e.getStatus());
}
}
return false;
@@ -77,16 +85,22 @@ public class CVSSyncSet extends SyncSet {
public boolean removeAddedChanges() {
for (Iterator it = getSyncSet().iterator(); it.hasNext();) {
- ITeamNode node = (ITeamNode)it.next();
- ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
- if(cvsResource.isFolder()) {
- if(((ICVSFolder)cvsResource).isCVSFolder()) {
- it.remove();
- }
- } else {
- if(cvsResource.isManaged()) {
- it.remove();
+ try {
+ ITeamNode node = (ITeamNode)it.next();
+ ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(node.getResource());
+ if(cvsResource.isFolder()) {
+ if(((ICVSFolder)cvsResource).isCVSFolder()) {
+ it.remove();
+ }
+ } else {
+ if(cvsResource.isManaged()) {
+ it.remove();
+ }
}
+ } catch (CVSException e) {
+ // isManaged or isCVSFolder threw an exception
+ // Log it and continue
+ CVSUIPlugin.log(e.getStatus());
}
}
return false;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CommitSyncAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CommitSyncAction.java
index 4d452f44c..fe29c1ad9 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CommitSyncAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/CommitSyncAction.java
@@ -14,9 +14,8 @@ package org.eclipse.team.internal.ccvs.ui.sync;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
+import org.eclipse.team.internal.ccvs.core.CVSException;
+import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ui.sync.ITeamNode;
import org.eclipse.team.internal.ui.sync.SyncSet;
@@ -31,7 +30,12 @@ public class CommitSyncAction extends ForceCommitSyncAction {
protected boolean isEnabled(ITeamNode node) {
// The commit action is enabled only for non-conflicting outgoing changes
CVSSyncSet set = new CVSSyncSet(new StructuredSelection(node));
- return set.hasCommitableChanges();
+ try {
+ return set.hasCommitableChanges();
+ } catch (CVSException e) {
+ CVSUIPlugin.log(e.getStatus());
+ return false;
+ }
}
protected void removeNonApplicableNodes(SyncSet set, int syncMode) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/IgnoreAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/IgnoreAction.java
index 64bd9fbf7..c3765116b 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/IgnoreAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/sync/IgnoreAction.java
@@ -20,6 +20,7 @@ import org.eclipse.team.core.sync.IRemoteSyncElement;
import org.eclipse.team.internal.ccvs.core.CVSException;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
+import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.IgnoreResourcesDialog;
import org.eclipse.team.internal.ui.sync.ChangedTeamContainer;
import org.eclipse.team.internal.ui.sync.ITeamNode;
@@ -79,7 +80,12 @@ public class IgnoreAction extends Action {
if (node.getKind() != (ITeamNode.OUTGOING | IRemoteSyncElement.ADDITION)) return false;
IResource resource = node.getResource();
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
- return !cvsResource.isManaged();
+ try {
+ return !cvsResource.isManaged();
+ } catch (CVSException e) {
+ CVSUIPlugin.log(e.getStatus());
+ return false;
+ }
}
public void update() {
IStructuredSelection selection = (IStructuredSelection)selectionProvider.getSelection();
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
index e1049c652..a937810dd 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java
@@ -326,7 +326,7 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {
}
final boolean[] isCVSFolder = new boolean[] { false };
try {
- CVSUIPlugin.runWithRefresh(shell, project, new IRunnableWithProgress() {
+ CVSUIPlugin.runWithRefresh(shell, new IResource[] { project }, new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
try {
ICVSFolder folder = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
index d12ef26a7..5824b8883 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
@@ -29,6 +29,7 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
+import org.eclipse.team.core.TeamPlugin;
import org.eclipse.team.internal.ui.Policy;
import org.eclipse.team.ui.TeamUIPlugin;
import org.eclipse.ui.IObjectActionDelegate;
@@ -185,7 +186,8 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
action.setEnabled(isEnabled());
} catch (TeamException e) {
action.setEnabled(false);
- handle(e, null, null);
+ // We should not open a dialog when determining menu enablements so log it instead
+ TeamPlugin.log(e.getStatus());
}
}
}

Back to the top