Xueming Shen wrote:
Hi,
if I run
java Foo foo.jar
I got
--------------------------------------------------------------------------------------------
...
checking [Demo.java]
e.name :Demo.java
e.hash :-1540408531
e.method :0
e.size :26680
e.csize :26680
is=java.util.zip.ZipFile$ZipFileInputStream@184cc40
is.hash=25480256
..................................
--> is :java.util.zip.ZipFile$ZipFileInflaterInputStream@11dd4fb
is.hash :18732283
e.name :javax/swing/text/Utilities.class
e.hash :-1072011748
e.method :8
e.size :14526
e.csize :7016
java.io.IOException: Stream closed
at java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:67)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:142)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at Foo.main(Foo.java:40)
..................................
It appears that the current ZipEntry "e" and InputStream "is" are replaced by an old pair
of "e" and "is", which should have been iterated, read, closed already, after the reading
started. And the reading ended with IOException "stream closed".