File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed
src/main/java/org/codehaus/plexus/archiver/zip Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -698,7 +698,14 @@ protected FileTime normalizeLastModifiedTime(FileTime lastModifiedTime) {
698698 */
699699 private static long dosToJavaTime (long dosTime ) {
700700 Calendar cal = Calendar .getInstance (TimeZone .getDefault (), Locale .ROOT );
701+ if (dosTime < MIN_DOS_JAVA_TIME ) {
702+ dosTime = MIN_DOS_JAVA_TIME ;
703+ }
701704 cal .setTimeInMillis (dosTime );
702705 return dosTime - (cal .get (Calendar .ZONE_OFFSET ) + cal .get (Calendar .DST_OFFSET ));
703706 }
707+
708+ // minimum DOS time that will give a positive Java time, whatever the current TZ is:
709+ // biggest TZ offset is for Etc/GMT-14 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
710+ private static final long MIN_DOS_JAVA_TIME = 1000 * 14 * 3600 ;
704711}
You can’t perform that action at this time.
0 commit comments