RFR(S): 8073497: Lazy conversion of ZipEntry time

Xueming Shen xueming.shen at oracle.com
Sat Feb 21 18:49:48 UTC 2015

Hi Claes,

This change basically undo the "fix" for 4759491 [1], for better 
performance ...

If we go with this change, I think we should also update the field 
comment back to the
original one to clearly indicates the "time" is "in DOS time".

-    long time = -1;     // modification time (in DOS time)
+    long mtime = -1;    // last modification time

The set/getLastModifiedTime() pair also need update to set/get the 
"time" field
correctly to/from the dos time.


[1] http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/90df6756406f

On 2/21/15 6:34 AM, Claes Redestad wrote:
> Hi all,
> please review this patch to re-introduce laziness in the java-to-dos time
> conversions for the ZipEntry.time field.
> Webrev: http://cr.openjdk.java.net/~redestad/jdk9/8073497/webrev.0/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8073497
> See bug for more details.
> This behavior was actually the case before 8-b94, when the time field
> was removed in favor of a set of FileTime fields, but when it was later
> re-introduced to address some compatibility issues the conversion was
> implemented in an eager fashion. This inadvertently affects VM startup
> ever so little, since for every entry read via a ZipFile or 
> ZipInputStream
> we'll do a relatively expensive call creating a Date and doing timezone
> conversion.
> Some gains from loading fewer classes during VM startup, as well.
> Thanks!
> /Claes

More information about the core-libs-dev mailing list