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