Return-Path: Delivered-To: apmail-commons-issues-archive@locus.apache.org Received: (qmail 34600 invoked from network); 15 Nov 2008 12:33:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Nov 2008 12:33:48 -0000 Received: (qmail 19965 invoked by uid 500); 15 Nov 2008 12:33:55 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 19874 invoked by uid 500); 15 Nov 2008 12:33:54 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 19863 invoked by uid 99); 15 Nov 2008 12:33:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 15 Nov 2008 04:33:54 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 15 Nov 2008 12:32:42 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 31727234C289 for ; Sat, 15 Nov 2008 04:32:51 -0800 (PST) Message-ID: <139884324.1226752371200.JavaMail.jira@brutus> Date: Sat, 15 Nov 2008 04:32:51 -0800 (PST) From: "Jens Scheffler (JIRA)" To: issues@commons.apache.org Subject: [jira] Commented: (VFS-225) File name parsing issues in layered file systems In-Reply-To: <336031126.1226609324351.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/VFS-225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12647838#action_12647838 ] 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 session. Test Preparation: Create a simple (even empty) text file called "Important!!.txt" in a folder called "Dir". ZIP the "Dir" folder into "Archive.zip" and place the ZIP into "C:\Temp" so that the resulting URI would look like: zip:file:///C:/Temp/Archive.zip!/Dir/Important!!!.txt If you execute the following code: FileSystemManager mgr = VFS.getManager(); FileObject f = mgr.resolveFile("zip:file:///C:/Temp/Archive.zip!/"); FileObject[] content = f.findFiles(Selectors.SELECT_ALL); for (FileObject item : content) { System.out.println(item.toString()); } ...you 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: https://issues.apache.org/jira/browse/VFS-225 > 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(AbstractFileSystem.java:274) > at org.apache.commons.vfs.provider.AbstractFileSystem.resolveFile(AbstractFileSystem.java:267) > at org.apache.commons.vfs.provider.AbstractFileObject.resolveFile(AbstractFileObject.java:670) > at de.jensscheffler.ftpsync.db.SyncFileSystemTest.treeCopy(SyncFileSystemTest.java:87) > (...) > 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.