1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-26 02:15:31 +02:00

Fix bug 154298 - copy&paste on sftp, and improve error messages

This commit is contained in:
Martin Oberhuber 2006-08-17 21:18:13 +00:00
parent 531cb8408c
commit b21bec3388

View file

@ -149,11 +149,17 @@ public class SftpFileService extends AbstractFileService implements IFileService
return (SystemMessageException)e; return (SystemMessageException)e;
} }
else if (e instanceof SftpException) { else if (e instanceof SftpException) {
//Some extra handling to keep Sftp messages
//TODO more user-friendly messages for more Sftp exception types //TODO more user-friendly messages for more Sftp exception types
int id = ((SftpException)e).id; SystemMessageException messageException;
if (id == ChannelSftp.SSH_FX_PERMISSION_DENIED) { SftpException sftpe = (SftpException)e;
return new RemoteFileSecurityException(e); if (sftpe.id == ChannelSftp.SSH_FX_PERMISSION_DENIED) {
messageException = new RemoteFileSecurityException(e);
} else {
messageException = new RemoteFileIOException(e);
} }
messageException.getSystemMessage().makeSubstitution("Sftp: "+sftpe.toString());
return messageException;
} }
return new RemoteFileIOException(e); return new RemoteFileIOException(e);
} }
@ -171,7 +177,12 @@ public class SftpFileService extends AbstractFileService implements IFileService
Activator.trace("SftpFileService.getFile done"); //$NON-NLS-1$ Activator.trace("SftpFileService.getFile done"); //$NON-NLS-1$
} catch(Exception e) { } catch(Exception e) {
Activator.trace("SftpFileService.getFile failed: "+e.toString()); //$NON-NLS-1$ Activator.trace("SftpFileService.getFile failed: "+e.toString()); //$NON-NLS-1$
throw makeSystemMessageException(e); if ( (e instanceof SftpException) && ((SftpException)e).id==ChannelSftp.SSH_FX_NO_SUCH_FILE) {
//We MUST NOT throw an exception here. API requires that an empty IHostFile
//is returned in this case.
} else {
throw makeSystemMessageException(e);
}
} finally { } finally {
fDirChannelMutex.release(); fDirChannelMutex.release();
} }