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.