src/java.base/share/classes/java/util/zip/ZipEntry.java

Print this page

        

@@ -225,16 +225,16 @@
     public void setTimeLocal(LocalDateTime time) {
         int year = time.getYear() - 1980;
         if (year < 0) {
             this.xdostime = DOSTIME_BEFORE_1980;
         } else {
-            this.xdostime = (year << 25 |
+            this.xdostime = ((year << 25 |
                 time.getMonthValue() << 21 |
                 time.getDayOfMonth() << 16 |
                 time.getHour() << 11 |
                 time.getMinute() << 5 |
-                time.getSecond() >> 1)
+                time.getSecond() >> 1) & 0xffffffffL)
                 + ((long)(((time.getSecond() & 0x1) * 1000) +
                       time.getNano() / 1000_000) << 32);
         }
         if (xdostime != DOSTIME_BEFORE_1980 && year <= 0x7f) {
             this.mtime = null;