diff --git a/pom.xml b/pom.xml
index ac3389b5..e459e9ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
plexus-archiver
- 4.10.1
+ 4.10.2
Plexus Archiver Component
https://codehaus-plexus.github.io/plexus-archiver/
@@ -30,7 +30,7 @@
scm:git:https://github.com/codehaus-plexus/plexus-archiver.git
scm:git:https://github.com/codehaus-plexus/plexus-archiver.git
- plexus-archiver-4.10.1
+ plexus-archiver-4.10.2
https://github.com/codehaus-plexus/plexus-archiver/tree/${project.scm.tag}/
@@ -47,7 +47,7 @@
1.7.36
0.9.0.M4
- 2025-08-20T17:55:16Z
+ 2025-09-30T22:11:17Z
@@ -140,7 +140,7 @@
org.assertj
assertj-core
- 3.27.4
+ 3.27.6
test
diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
index 0b4bdb5e..dccb7edc 100755
--- a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
+++ b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java
@@ -698,7 +698,14 @@ protected FileTime normalizeLastModifiedTime(FileTime lastModifiedTime) {
*/
private static long dosToJavaTime(long dosTime) {
Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.ROOT);
+ if (dosTime < MIN_DOS_JAVA_TIME) {
+ dosTime = MIN_DOS_JAVA_TIME;
+ }
cal.setTimeInMillis(dosTime);
return dosTime - (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET));
}
+
+ // minimum DOS time that will give a positive Java time, whatever the current TZ is:
+ // biggest TZ offset is for Etc/GMT-14 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+ private static final long MIN_DOS_JAVA_TIME = 1000 * 14 * 3600;
}