Request for approval for: 7077769
Xueming Shen
xueming.shen at oracle.com
Fri Aug 26 10:36:49 PDT 2011
/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
More information about the jdk7u-dev
mailing list