You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Tony Wu (JIRA)" <ji...@apache.org> on 2007/01/26 03:10:49 UTC

[jira] Updated: (HARMONY-2436) [classlib][archive] Reading from a closed Jar file is allowed

     [ https://issues.apache.org/jira/browse/HARMONY-2436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tony Wu updated HARMONY-2436:
-----------------------------

    Attachment: harmony-2436.diff

patch available, would you pls try it? Thanks

> [classlib][archive] Reading from a closed Jar file is allowed
> -------------------------------------------------------------
>
>                 Key: HARMONY-2436
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2436
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Anton Ivanov
>            Priority: Minor
>         Attachments: harmony-2436.diff, hello_world.jar
>
>
> Reading from InputStream which was opened on some JarFile
> is allowed even if this JarFile was closed .
> java.util.jar.JarFile inherits close() method from java.util.zip.ZipFile and
> specification of this method ensure that if JarFile is closed all InputStreams that were obtained 
> via getInputStream() method will be closed. But JarFile behaves in a different manner.
> Code to reproduce this problem:
> import java.util.jar.*;
> import java.io.*;
> public class TestJarFileClose{
>     public static void main(String[] args) {
>         byte[] b = new byte[1024];
>         try {
>             JarFile jf = new JarFile("hello_world.jar");
>             InputStream is = jf.getInputStream(jf.getEntry("hello_world/HelloWorld.class"));
>             jf.close();
>             int r = is.read(b, 0, 1024);
>             System.out.println("Test failed, readed from closed JAR file: "+r);
>             is.close();
>         } catch (Exception e) {
>             System.out.println("Test passed: "+e);    
>         } 
>     }
> }
> Output on RI:  
> Test passed: java.lang.IllegalStateException: zip file closed
> Output on Harmony: 
> Test failed, readed from closed JAR file: 427 

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