[ 
https://issues.apache.org/jira/browse/VFS-590?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16296786#comment-16296786
 ] 

L commented on VFS-590:
-----------------------

As I wrote in the description: 
{quote}Performing moveTo without this check might successfully rename the file. 
{quote}

In our case it worked: the server had disabled SSH channelExec. After patching 
commons-vfs not to perform all those isWriteable() moveTo() completed 
successfully. 

> SFTP moveTo operation might fail on permission checks even if the operation 
> itself might succeed
> ------------------------------------------------------------------------------------------------
>
>                 Key: VFS-590
>                 URL: https://issues.apache.org/jira/browse/VFS-590
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: Nightly Builds
>            Reporter: L
>
> Continuing with SFTP moveTo, see VFS-588 and VFS-589 for more details.
> The permission checks that VFS performs during moveTo() can result in 
> failure. 
> org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(final FileObject 
> destFile) starts with some checks:
> {code:java}
>     @Override
>     public void moveTo(final FileObject destFile) throws FileSystemException
>     {
>         if (canRenameTo(destFile))
>         {
>             if (!getParent().isWriteable())
>             {
>                 throw new 
> FileSystemException("vfs.provider/rename-parent-read-only.error",
>                         getName(),
>                         getParent().getName());
>             }
>         }
>         else
>         {
>             if (!isWriteable())
>             {
>                 throw new 
> FileSystemException("vfs.provider/rename-read-only.error", getName());
>             }
>         }
> {code}
> The problem is: isWriteable() might fail or even hang. Performing moveTo 
> without this check might successfully rename the file.
> isWriteable() in case of SFTP can fail if the server disables SSH 
> channelExec. Or if it does not support "id" command.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to