Hi,
I'll pre-approve the fix so that you can submit the change once it's
in JDK 8.
Cheers,
Edvard
On 26 aug 2011, at 10.36, Xueming Shen wrote:
/Hi,
Could you please approve the fix for
/
7077769: (zipfs) ZipFileSystem.writeCEN() writes wrong "data size"
for ZIP64 extended information extra field
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077769
The fix tries to address two issues in the ZipFileSystem class,
which is newly introduced
in JDK7.
(1) The OutputStream used to write out the bits in sync() is not
wrapped
by a BufferedOutputStream. Without the BufferedOutputStream wrapper,
we basically write all ZIP header tables (loc and cen) byte by byte.
How
big is the impact to the performance? With the BufferedOutputStream,
the
time we spend on sync/writing a Jar file in size of 64M (our rt.jar)
improved
from 3640 ms to 1315 ms on my local machine.
(2) The writeCEN() incorrectly sets the data size of the ZIP64
extended
information extra field block. The "data size" should be the size
of the
ZIP64 data block only, not include the 4-byte header (the
ZFS.writeCEN()
accidentally includes these extra 4 bytes).
Webrev is at
http://cr.openjdk.java.net/~sherman/7077769/7u2/webrev
The fix will go into JDK8 first (which is being reviewed).
Thanks,
Sherman