From 3d82fdcaad07a2d96b24d91cf3fcfcf825dc7639 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Wed, 22 Jul 2015 21:11:38 -0700 Subject: [PATCH] 8130914: java/util/zip/TestExtraTime.java fails with "java.lang.RuntimeException: setTime should make getLastModifiedTime return the specified instant: 3078282244456 got: 3078282244455" Fixed the 32-bit overflow. Reviewed-by: rriggs --- jdk/src/java.base/share/classes/java/util/zip/ZipUtils.java | 6 +++--- jdk/test/java/util/zip/TestExtraTime.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/util/zip/ZipUtils.java b/jdk/src/java.base/share/classes/java/util/zip/ZipUtils.java index 5ee27083406..df90496b609 100644 --- a/jdk/src/java.base/share/classes/java/util/zip/ZipUtils.java +++ b/jdk/src/java.base/share/classes/java/util/zip/ZipUtils.java @@ -99,9 +99,9 @@ class ZipUtils { if (year < 1980) { return ZipEntry.DOSTIME_BEFORE_1980; } - return (year - 1980) << 25 | (d.getMonth() + 1) << 21 | - d.getDate() << 16 | d.getHours() << 11 | d.getMinutes() << 5 | - d.getSeconds() >> 1; + return ((year - 1980) << 25 | (d.getMonth() + 1) << 21 | + d.getDate() << 16 | d.getHours() << 11 | d.getMinutes() << 5 | + d.getSeconds() >> 1) & 0xffffffffL; } /** diff --git a/jdk/test/java/util/zip/TestExtraTime.java b/jdk/test/java/util/zip/TestExtraTime.java index d5183c14477..2fd2b4ad7ad 100644 --- a/jdk/test/java/util/zip/TestExtraTime.java +++ b/jdk/test/java/util/zip/TestExtraTime.java @@ -23,7 +23,7 @@ /** * @test - * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 + * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 8130914 * @summary Test ZOS and ZIS timestamp in extra field correctly */