You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "John Webb (Jira)" <ji...@apache.org> on 2020/02/05 06:13:00 UTC

[jira] [Created] (VFS-753) NumberFormatException in SftpFileSystem::getUId

John Webb created VFS-753:
-----------------------------

             Summary: NumberFormatException in SftpFileSystem::getUId
                 Key: VFS-753
                 URL: https://issues.apache.org/jira/browse/VFS-753
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.5.0
            Reporter: John Webb


When calling FileSystemManager::resolveFile(...) connecting to a specific sftp server a NumberFormat exception is thrown and a FileObject is not returned.

When the SftpFileSystem constructor is called there is a call to detectExecDisabled which in turn calls getUid. SftpFileSystem::getUId assumes that executeCommand(...) will always return non zero (the channel exit status) for execution failure.

In the case of the sftp server that we are connecting to, the channel exit status remains zero however the returned buffer contains the string "This server does not provide shell access, only SFTP. Goodbye.". This causes a NumberFormatException in getUId.

This behaviour does not occur in version 2.4.1

Here is the relevent snippet from the stack trace:
java.lang.NumberFormatException: For input string: "This server does not provide shell access, only SFTP. Goodbye."

       at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

       at java.lang.Integer.parseInt(Integer.java:580)

       at java.lang.Integer.parseInt(Integer.java:615)

       at org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getUId(SftpFileSystem.java:281)

       at org.apache.commons.vfs2.provider.sftp.SftpFileSystem.detectExecDisabled(SftpFileSystem.java:344)

       at org.apache.commons.vfs2.provider.sftp.SftpFileSystem.<init>(SftpFileSystem.java:94)

       at org.apache.commons.vfs2.provider.sftp.SftpFileProvider.doCreateFileSystem(SftpFileProvider.java:93)

       at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:93)

       at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:72)

       at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:56)

       at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:717)

       at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:654)

       at com.shortcuts.lambda.google_reserve_sftp.util.SFTPUtil.ls(SFTPUtil.java:68)

       at com.shortcuts.lambda.google_reserve_sftp.util.SFTPUtilTest.testConnectToGoogle(SFTPUtilTest.java:48)

       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)