diff --git a/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java b/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java index f1402201b44..690ca7b7c20 100644 --- a/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java +++ b/rse/plugins/org.eclipse.rse.services.ssh/src/org/eclipse/rse/internal/services/ssh/files/SftpFileService.java @@ -336,6 +336,8 @@ public class SftpFileService extends AbstractFileService implements IFileService } finally { fDirChannelMutex.release(); } + } else { + throw new RemoteFileCancelledException(); } return (IHostFile[])results.toArray(new IHostFile[results.size()]); } @@ -607,6 +609,8 @@ public class SftpFileService extends AbstractFileService implements IFileService } finally { fDirChannelMutex.release(); } + } else { + throw new RemoteFileCancelledException(); } return result; } @@ -627,6 +631,8 @@ public class SftpFileService extends AbstractFileService implements IFileService } finally { fDirChannelMutex.release(); } + } else { + throw new RemoteFileCancelledException(); } return result; } @@ -945,7 +951,9 @@ public class SftpFileService extends AbstractFileService implements IFileService Activator.trace("SftpFileService.getOutputStream " + remoteFile + " failed: " + e.toString()); //$NON-NLS-1$ //$NON-NLS-2$ throw makeSystemMessageException(e); } - + if (monitor.isCanceled()) { + throw new RemoteFileCancelledException(); + } return stream; } } \ No newline at end of file diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/Mutex.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/Mutex.java index 169881c3e39..fee53a1f583 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/Mutex.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/Mutex.java @@ -69,6 +69,9 @@ public class Mutex { if (Thread.interrupted()) { return false; } + if (monitor!=null && monitor.isCanceled()) { + return false; + } final Thread myself = Thread.currentThread(); synchronized(fWaitQueue) { if (!fLocked) {