[ 
https://issues.apache.org/jira/browse/VFS-286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Safonov updated VFS-286:
-------------------------------

    Description: 
SftpFileObject.doListChildrenResolved() changes the working dir before doing 
ChannelSftp.ls() call. If ls() throws an exception (in my case it's 
SftpException "No such file" when trying to list the contents of "/dev/cdrom"), 
the execution is blown out the method and channel.cd(workingDirectory) is not 
performed. *All* the subsequent operations that rely on the current dir will 
fail trying to cd() into unexisting directory.

The fix will be to move the channel.cd(workingDirectory); part into the finally 
{} block below


  was:
SftpFileObject.doListChildrenResolved() changes the working dir before doing 
ChannelSftp.ls() call. If ls() throws an exception (in my case it's 
SftpException "No such file" when trying to list the contents of "/dev/cdrom"), 
the execution is blown out the method and channel.cd(workingDirectory) is not 
performed. *All* the subsequent operations that rely on the current dir will 
fail trying to cd() into unexisting directory.

This fix will be to move the channel.cd(workingDirectory); part into the 
finally {} block below



> SFTP: getChildren() does not restore working dir if exception is thrown
> -----------------------------------------------------------------------
>
>                 Key: VFS-286
>                 URL: https://issues.apache.org/jira/browse/VFS-286
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: Nightly Builds
>            Reporter: Kirill Safonov
>            Priority: Critical
>
> SftpFileObject.doListChildrenResolved() changes the working dir before doing 
> ChannelSftp.ls() call. If ls() throws an exception (in my case it's 
> SftpException "No such file" when trying to list the contents of 
> "/dev/cdrom"), the execution is blown out the method and 
> channel.cd(workingDirectory) is not performed. *All* the subsequent 
> operations that rely on the current dir will fail trying to cd() into 
> unexisting directory.
> The fix will be to move the channel.cd(workingDirectory); part into the 
> finally {} block below

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to