Traversal of directory tree with FileSelector fails with symbolic links in FTP 
& SFTP
-------------------------------------------------------------------------------------

                 Key: VFS-179
                 URL: https://issues.apache.org/jira/browse/VFS-179
             Project: Commons VFS
          Issue Type: Bug
            Reporter: Andrew Franklin


It seems to me that when using the FileSelector to traverse a directory tree 
using SFTP, a symbolic link will return as type File (even when the link points 
to a directory), which will result in the directory node not being followed.

For SFTP it seems that changing doGetType to explicitly deal with the link as 
FILE_OR_FOLDER seems to fix the issue. I'm not sure whether this would have any 
negative side effects...?

        /**
         * Determines the type of this file, returns null if the file does not
         * exist.
         */
        protected FileType doGetType() throws Exception
        {
                if (attrs == null)
                {
                        statSelf();
                }

                if (attrs == null)
                {
                        return FileType.IMAGINARY;
                }

                if ((attrs.getFlags() & 
SftpATTRS.SSH_FILEXFER_ATTR_PERMISSIONS) == 0)
                {
                        throw new FileSystemException(
                                        
"vfs.provider.sftp/unknown-permissions.error");
                }
                // A symbolic link might be a file or folder
                if(attrs.isLink())
                {
                        return FileType.FILE_OR_FOLDER; 
                }
                else if (attrs.isDir())
                {
                        return FileType.FOLDER;
                }
                else
                {
                        return FileType.FILE;
                }
        }

-- 
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