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

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

A recent commit has messed up the build. Once that is fixed, I could test the 
proposed fix to see if breaks anything. If it does not, that is a good sign but 
there is no unit tests to prove that the change fixes anything, so that is 
needed.

If you or anyone wants to help this issue move forward, please create a patch 
with a fix for trunk _with_ a unit test.

Issues with patches usually go through the whole process a lot faster and 
smoother. We are all volunteers here with limited availability.

Gary

> 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 was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to