FtpFileObject.getChildren() fails when a folder contains a file with a colon in 
the name
----------------------------------------------------------------------------------------

                 Key: VFS-398
                 URL: https://issues.apache.org/jira/browse/VFS-398
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.0
         Environment: Connecting via FTP to a host running SunOS 5.10
            Reporter: Mark Leonard
            Priority: Blocker
             Fix For: 2.0


In line 767 of DefaultFileSystemManager.java the UriParser's extractScheme() 
method is called:

        String scheme = UriParser.extractScheme(buffer.toString());

This code was added in revision 780730
http://svn.apache.org/viewvc?view=revision&revision=780730
It is not clear to me why this change was made.

For the FTP provider, buffer contains a plain file name (i.e. without a path 
and definitely not in URI form)

A colon is a valid character for a file name.
However a colon will be interpreted as a URI scheme name.
This causes an exception when the resolved path is checked using 
AbstractFileName.checkName()

Sample code:

FileObject fo = 
VFS.getManager().resolveFile("ftp://user:pass@host/some/path/some.file";);
fo.getParent().getChildren();

If /some/path/ contains a child such as PREFIX:SUFFIX then an exception is 
thrown:

Exception in thread "main" org.apache.commons.vfs2.FileSystemException: Invalid 
descendent file name "PREFIX:SUFFIX".
        at 
org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveName(DefaultFileSystemManager.java:791)
        at 
org.apache.commons.vfs2.provider.AbstractFileObject.getChildren(AbstractFileObject.java:710)
        at 
org.apache.commons.vfs2.provider.ftp.FtpFileObject.getChildren(FtpFileObject.java:420)

Therefore calling code is unable to list the children of the specified folder.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to