You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2026/09/25 21:12:51 UTC
(maven-archiver) 01/01: Address review: fix @since tag, extract clampToDateMin helper
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch fix/source-date-epoch-zero
in repository https://gitbox.apache.org/repos/asf/maven-archiver.git
commit 18dfc789b2269a993ea910483fc5784dcc40f14d
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Sep 25 21:12:37 2026 +0000
Address review: fix @since tag, extract clampToDateMin helper
---
.../maven/shared/archiver/MavenArchiver.java | 35 ++++++++++------------
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java b/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java
index 9153a8d..62d45fa 100644
--- a/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java
+++ b/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java
@@ -79,7 +79,7 @@ public class MavenArchiver {
* Minimum timestamp value for ZIP/JAR entries (1980-01-01T00:00:02Z).
* Timestamps before this value are clamped to it with a warning.
*
- * @since 3.7.1
+ * @since 4.0.0-beta-6
*/
public static final Instant DATE_MIN = Instant.parse("1980-01-01T00:00:02Z");
@@ -714,15 +714,7 @@ public class MavenArchiver {
// Number representing seconds since the epoch
if (isNumeric(outputTimestamp)) {
Instant date = Instant.ofEpochSecond(Long.parseLong(outputTimestamp));
- if (date.isBefore(DATE_MIN)) {
- LOGGER.warn(
- "Timestamp '{}' is before the minimum date for ZIP/JAR entries."
- + " Clamping to DATE_MIN ({}). See https://github.com/apache/maven-jar-plugin/issues/595",
- date,
- DATE_MIN);
- date = DATE_MIN;
- }
- return Optional.of(date);
+ return Optional.of(clampToDateMin(date, outputTimestamp));
}
try {
@@ -731,15 +723,7 @@ public class MavenArchiver {
.withOffsetSameInstant(ZoneOffset.UTC)
.truncatedTo(ChronoUnit.SECONDS)
.toInstant();
- if (date.isBefore(DATE_MIN)) {
- LOGGER.warn(
- "Timestamp '{}' is before the minimum date for ZIP/JAR entries."
- + " Clamping to DATE_MIN ({}). See https://github.com/apache/maven-jar-plugin/issues/595",
- date,
- DATE_MIN);
- date = DATE_MIN;
- }
- return Optional.of(date);
+ return Optional.of(clampToDateMin(date, outputTimestamp));
} catch (DateTimeParseException pe) {
throw new IllegalArgumentException(
"Invalid project.build.outputTimestamp value '" + outputTimestamp + "'", pe);
@@ -760,6 +744,19 @@ public class MavenArchiver {
return true;
}
+ private static Instant clampToDateMin(Instant date, String originalInput) {
+ if (date.isBefore(DATE_MIN)) {
+ LOGGER.warn(
+ "Timestamp '{}' (parsed from '{}') is before the minimum date for ZIP/JAR entries."
+ + " Clamping to DATE_MIN ({}). See https://github.com/apache/maven-jar-plugin/issues/595",
+ date,
+ originalInput,
+ DATE_MIN);
+ return DATE_MIN;
+ }
+ return date;
+ }
+
/**
* Configure Reproducible Builds archive creation if a timestamp is provided.
*