diff --git a/src/share/classes/java/util/zip/ZipEntry.java b/src/share/classes/java/util/zip/ZipEntry.java index 3f958c48816556e20e04781947e2c582c3760d73..1e32e74ad1c61b85cd9f865384d37554922a5d3a 100644 --- a/src/share/classes/java/util/zip/ZipEntry.java +++ b/src/share/classes/java/util/zip/ZipEntry.java @@ -180,8 +180,7 @@ class ZipEntry implements ZipConstants, Cloneable { * @since 1.8 */ public ZipEntry setLastModifiedTime(FileTime time) { - Objects.requireNonNull(name, "time"); - this.mtime = time; + this.mtime = Objects.requireNonNull(time, "lastModifiedTime"); this.time = time.to(TimeUnit.MILLISECONDS); return this; } @@ -227,8 +226,7 @@ class ZipEntry implements ZipConstants, Cloneable { * @since 1.8 */ public ZipEntry setLastAccessTime(FileTime time) { - Objects.requireNonNull(name, "time"); - this.atime = time; + this.atime = Objects.requireNonNull(time, "lastAccessTime"); return this; } @@ -265,8 +263,7 @@ class ZipEntry implements ZipConstants, Cloneable { * @since 1.8 */ public ZipEntry setCreationTime(FileTime time) { - Objects.requireNonNull(name, "time"); - this.ctime = time; + this.ctime = Objects.requireNonNull(time, "creationTime"); return this; } diff --git a/test/java/util/zip/TestExtraTime.java b/test/java/util/zip/TestExtraTime.java index b96c85f7c02fcdb5f483b28ad2fba58b45049cfc..fcf75a153b0d559f9293de7e43d1db14de890ee3 100644 --- a/test/java/util/zip/TestExtraTime.java +++ b/test/java/util/zip/TestExtraTime.java @@ -23,7 +23,7 @@ /** * @test - * @bug 4759491 6303183 7012868 8015666 8023713 + * @bug 4759491 6303183 7012868 8015666 8023713 8068790 * @summary Test ZOS and ZIS timestamp in extra field correctly */ @@ -69,6 +69,8 @@ public class TestExtraTime { test(mtime, atime, ctime, tz, extra); } } + + testNullHandling(); } static void test(FileTime mtime, FileTime atime, FileTime ctime, @@ -154,4 +156,26 @@ public class TestExtraTime { } } } + + static void testNullHandling() { + ZipEntry ze = new ZipEntry("TestExtraTime.java"); + try { + ze.setLastAccessTime(null); + throw new RuntimeException("setLastAccessTime(null) should throw NPE"); + } catch (NullPointerException ignored) { + // pass + } + try { + ze.setCreationTime(null); + throw new RuntimeException("setCreationTime(null) should throw NPE"); + } catch (NullPointerException ignored) { + // pass + } + try { + ze.setLastModifiedTime(null); + throw new RuntimeException("setLastModifiedTime(null) should throw NPE"); + } catch (NullPointerException ignored) { + // pass + } + } }