You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Vincent Bonamy (JIRA)" <ji...@apache.org> on 2012/11/21 20:19:58 UTC
[jira] [Commented] (VFS-398) FtpFileObject.getChildren() fails when
a folder contains a file with a colon in the name
[ https://issues.apache.org/jira/browse/VFS-398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502213#comment-13502213 ]
Vincent Bonamy commented on VFS-398:
------------------------------------
Hello,
As Mark Leonard said, the goal of the commit 780730 is not very clear for me too.
And this issue broke my app so that I had to fork commons-vfs2-project-2.0
You can see the patch/diff I make on github here :
https://github.com/vbonamy/commons-vfs2-project-2.0/commit/43de7e38a6a27f846c034eb3b824edd2e3b0fe12
It would be nice if this issue can find a resolution. Maybe my patch can be applied simply ?
Thanks,
Vincent.
> 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.1
>
>
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira