in sshd-sftp/src/main/java/org/apache/sshd/sftp/common/SftpHelper.java [708:741]
public static int resolveSubstatus(Throwable t) {
if ((t instanceof NoSuchFileException) || (t instanceof FileNotFoundException)) {
return SftpConstants.SSH_FX_NO_SUCH_FILE;
} else if (t instanceof InvalidHandleException) {
return SftpConstants.SSH_FX_INVALID_HANDLE;
} else if (t instanceof FileAlreadyExistsException) {
return SftpConstants.SSH_FX_FILE_ALREADY_EXISTS;
} else if (t instanceof DirectoryNotEmptyException) {
return SftpConstants.SSH_FX_DIR_NOT_EMPTY;
} else if (t instanceof NotDirectoryException) {
return SftpConstants.SSH_FX_NOT_A_DIRECTORY;
} else if (t instanceof AccessDeniedException) {
return SftpConstants.SSH_FX_PERMISSION_DENIED;
} else if (t instanceof EOFException) {
return SftpConstants.SSH_FX_EOF;
} else if (t instanceof OverlappingFileLockException) {
return SftpConstants.SSH_FX_LOCK_CONFLICT;
} else if ((t instanceof UnsupportedOperationException)
|| (t instanceof UnknownServiceException)) {
return SftpConstants.SSH_FX_OP_UNSUPPORTED;
} else if (t instanceof InvalidPathException) {
return SftpConstants.SSH_FX_INVALID_FILENAME;
} else if (t instanceof IllegalArgumentException) {
return SftpConstants.SSH_FX_INVALID_PARAMETER;
} else if (t instanceof UserPrincipalNotFoundException) {
return SftpConstants.SSH_FX_UNKNOWN_PRINCIPAL;
} else if (t instanceof FileSystemLoopException) {
return SftpConstants.SSH_FX_LINK_LOOP;
} else if (t instanceof SftpException) {
return ((SftpException) t).getStatus();
} else {
return SftpConstants.SSH_FX_FAILURE;
}
}