L created VFS-590:
---------------------

             Summary: 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 while 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.3.4#6332)

Reply via email to