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

Gary Gregory commented on VFS-398:
----------------------------------

In svn trunk. Please verify and close.

{noformat}
commit -m "[VFS-398] FtpFileObject.getChildren() fails when a folder contains a 
file with a colon in the name...." -N (14 paths specified)
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/DefaultFileSystemManager.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/CompositeFileProvider.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DefaultURLStreamHandler.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/HostFileNameParser.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/LayeredFileNameParser.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/UriParser.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/local/LocalFileNameParser.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/res/ResourceFileProvider.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/temp/TemporaryFileProvider.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserTestCase.java
    Sending        
C:/svn/apache/commons-vfs2/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/test/FileNameTests.java
    Sending        C:/svn/apache/commons-vfs2/pom.xml
    Sending        C:/svn/apache/commons-vfs2/src/changes/changes.xml
    Transmitting file data ...
    Unknown action received: commit finalizing
    Committed revision 1852077.
{noformat}


> 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
>            Assignee: Otto Fowler
>            Priority: Blocker
>         Attachments: VFS-398-gg-00.patch
>
>
> 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 was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to