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)