commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Scheffler (JIRA)" <>
Subject [jira] Commented: (VFS-225) File name parsing issues in layered file systems
Date Sat, 15 Nov 2008 12:32:51 GMT


Jens Scheffler commented on VFS-225:

Good idea. Tried to nail down a very very simple example but failed to reproduce the same
Exception using ZipFileSystem. But maybe I can contribute a bit more information from my debugging

Test Preparation:
Create a simple (even empty) text file called "Important!!.txt" in a folder called "Dir".
ZIP the "Dir" folder into "" and place the ZIP into "C:\Temp" so that the resulting
URI would look like:

If you execute the following code:
            FileSystemManager mgr = VFS.getManager();
            FileObject f = mgr.resolveFile("zip:file:///C:/Temp/!/");
            FileObject[] content = f.findFiles(Selectors.SELECT_ALL);
            for (FileObject item : content) {
            } will NOT find the file. A problem in ZipFileSystem prevents the same exceptions which
I initially reported here due to pre-parsing of whole ZIP file and validation of references.

Nevertheless in the VFS provider which I'm currently writing I have from the same root cause
the described exception.

Root of the problem seems to be the parsing of layered file system names, a string scanner
goes backwards and tried to find the last "!" char in the file name.
It is in LayeredFileNameParser.extractRootName(StringBuffer)

Please tell me if I should contribute something further here.

> File name parsing issues in layered file systems
> ------------------------------------------------
>                 Key: VFS-225
>                 URL:
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: 1.0
>         Environment: Windows XP SP2 - but also assuming in other environments
>            Reporter: Jens Scheffler
> The "!" character is used as delimiter for e.g. ZIP file access as VFS component.
> When trying to traverse a layered file, e.g. traversing a ZIP content and the ZIP contains
a file with a "!" in the file name itself then a FileSystemException appears - it seems that
the parsing routine for layered filenames is stumbling over the "!" character.
> Exception trace for a test VFS component:
> org.apache.commons.vfs.FileSystemException: Incorrect file system URI "syncdb:file:///C:/Temp/test.xml!/c/temp/Maps/Important
to Read!!/" in name "syncdb:file:///C:/Temp/test.xml!/c/temp/Maps/Important to Read!!.txt",
was expecting "syncdb:file:///C:/Temp/test.xml!/".
> 	at org.apache.commons.vfs.provider.AbstractFileSystem.resolveFile(
> 	at org.apache.commons.vfs.provider.AbstractFileSystem.resolveFile(
> 	at org.apache.commons.vfs.provider.AbstractFileObject.resolveFile(
> 	at de.jensscheffler.ftpsync.db.SyncFileSystemTest.treeCopy(
> 	(...)
> As the accessing code was just traversing a folder tree with no chance to handle this,
is there any alternative for traversing through these layered file systems when the content
contains special characters?
> Maybe the approach for parsing needs to be enhanced also, I could offer some help but
maybe need a hint to contribute a fix.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message