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

Gary D. Gregory commented on VFS-399:
-------------------------------------

The test {{org.apache.commons.vfs2.provider.zip.test.NestedZipTestCase}} works 
in trunk. I am guessing it worked when 2.0 was released. 

Can you provide a test case patch that shows the problem? Perhaps using other 
VFS file providers?

Thank you.
                
> Custom VFSes over ZIP crashes with Null pointer Exception
> ---------------------------------------------------------
>
>                 Key: VFS-399
>                 URL: https://issues.apache.org/jira/browse/VFS-399
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: 2.0
>         Environment: Windows XP x64
> Oracle JDK 1.6.0.27
>            Reporter: Konstantin Kasatkin
>            Priority: Blocker
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> When I implement any intermediate VFS provider and try to connect it to ZIP 
> VFS provider like jar:myprovider:///myurl/myclasses.jar I get Null Pointer 
> Exception due to wrong implementation of ZIP provider. Because it initializes 
> NULL zip entry and tries to get last modification time of this entry without 
> checking for null value.
> I suggest the solution for this issue in two steps.
> 1. For elimination of issue in class 
> org.apache.commons.vfs2.provider.zip.ZipFileObject.java in method 
> doGetLastModifiedTime() {color:red}line 149{color} 
> change code: [{color:red} return entry.getTime();{color}]
> to code [{color:red}return entry==null ? 0 : entry.getTime();{color}]
> 2. For correct passing of last modification tate from parent VFS to ZIP VFS 
> in class org.apache.commons.vfs2.provider.zip.ZipFileSystem.java method 
> init() {color:red}line 115{color}
> change code [{color:red}parent = createZipFileObject(parentName, 
> null);{color}]
> to code [{color:red}
> ZipEntry parentEntry = new 
> ZipEntry(getParentLayer().getFileSystem().getRoot().getName().getPath());
> parentEntry.setSize(0);
> try {
>      
> parentEntry.setTime(getParentLayer().getFileSystem().getRoot().getContent().getLastModifiedTime());
> } catch (Exception e) { }
> parent = createZipFileObject(parentName, entry);{color}
> ]

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to