Bug 33407 Internal Error message when selecting Team > Synchronize with Target...
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeEditorInput.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeEditorInput.java
index bdb35a6..7695c41 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeEditorInput.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/merge/MergeEditorInput.java
@@ -77,7 +77,7 @@
 	/*
 	 * Override collectResourceChanges to only determine the true sync state for incomming changes
 	 */
-	protected IDiffElement collectResourceChanges(IDiffContainer parent, IRemoteSyncElement tree, IProgressMonitor pm) {
+	protected IDiffElement collectResourceChanges(IDiffContainer parent, IRemoteSyncElement tree, IProgressMonitor pm) throws TeamException {
 		if ( ! tree.isContainer()) {
 			CVSRemoteSyncElement cvsTree = (CVSRemoteSyncElement)tree;
 			RemoteFile base = (RemoteFile)cvsTree.getBase();
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/SyncCompareInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/SyncCompareInput.java
index 7f21913..5747c94 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/SyncCompareInput.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/SyncCompareInput.java
@@ -210,7 +210,7 @@
 			if (trees.length == 0) {
 				return null;
 			}
-			final InterruptedException[] exceptions = new InterruptedException[1];
+			final TeamException[] exceptions = new TeamException[1];
 			
 			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
 				public void run(IProgressMonitor monitor) throws CoreException {
@@ -218,7 +218,7 @@
 					diffRoot = new DiffNode(0);
 					try {						
 						doServerDelta(monitor);
-					} catch (InterruptedException e) {
+					} catch (TeamException e) {
 						exceptions[0] = e;
 					}
 				}
@@ -247,7 +247,7 @@
 		}
 	}
 	
-	void doServerDelta(IProgressMonitor pm) throws InterruptedException {
+	void doServerDelta(IProgressMonitor pm) throws TeamException {
 		pm.beginTask(null, trees.length * 1000);
 		pm.setTaskName(Policy.bind("SyncCompareInput.taskTitle")); //$NON-NLS-1$
 		for (int i = 0; i < trees.length; i++) {
@@ -265,19 +265,15 @@
 	 * and has enough ticks to allow 1 unit of work per resource in the tree and an additional
 	 * unit for each folder.
 	 */
-	protected IDiffElement collectResourceChanges(IDiffContainer parent, IRemoteSyncElement tree, IProgressMonitor pm) {
+	protected IDiffElement collectResourceChanges(IDiffContainer parent, IRemoteSyncElement tree, IProgressMonitor pm) throws TeamException {
 		int type = tree.getSyncKind(getSyncGranularity(), Policy.subMonitorFor(pm, 1));
 		MergeResource mergeResource = new MergeResource(tree);
 	
 		if (tree.isContainer()) {
 			IDiffContainer element = new ChangedTeamContainer(parent, mergeResource, type);
-			try {				
-				ILocalSyncElement[] children = tree.members(Policy.subMonitorFor(pm, 1));
-				for (int i = 0; i < children.length; i++) {
-					collectResourceChanges(element, (IRemoteSyncElement)children[i], pm);
-				}
-			} catch (TeamException e) {
-				TeamUIPlugin.log(e.getStatus());
+			ILocalSyncElement[] children = tree.members(Policy.subMonitorFor(pm, 1));
+			for (int i = 0; i < children.length; i++) {
+				collectResourceChanges(element, (IRemoteSyncElement)children[i], pm);
 			}
 			return element;
 		} else {
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/TargetSyncCompareInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/TargetSyncCompareInput.java
index a9137cd..e5e4708 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/TargetSyncCompareInput.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/TargetSyncCompareInput.java
@@ -82,19 +82,15 @@
 	protected IDiffElement collectResourceChanges(
 		final IDiffContainer parent,
 		final IRemoteSyncElement tree,
-		IProgressMonitor pm) {
+		IProgressMonitor pm) throws TeamException {
 		
 		final IDiffElement[] result = new IDiffElement[] {null};
-		try {
-			TargetProvider provider = TargetManager.getProvider(tree.getLocal().getProject());
-			provider.run(new ITargetRunnable() {
-				public void run(IProgressMonitor monitor) throws TeamException {
-					result[0] = TargetSyncCompareInput.super.collectResourceChanges(parent, tree, monitor);
-				}
-			}, pm);
-		} catch (TeamException e) {
-			TeamUIPlugin.log(e.getStatus());
-		}
+		TargetProvider provider = TargetManager.getProvider(tree.getLocal().getProject());
+		provider.run(new ITargetRunnable() {
+			public void run(IProgressMonitor monitor) throws TeamException {
+				result[0] = TargetSyncCompareInput.super.collectResourceChanges(parent, tree, monitor);
+			}
+		}, pm);
 		return result[0];
 	}
 }