You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2025/09/24 11:20:48 UTC
(maven-archiver) 01/01: don't limit outputTimestamp to zip (MS DOS) range
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch no-zip-timestamp-fail-4
in repository https://gitbox.apache.org/repos/asf/maven-archiver.git
commit 42151874439a1da0c68c5c49c7ff1fe77989651b
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Wed Sep 24 13:12:52 2025 +0200
don't limit outputTimestamp to zip (MS DOS) range
---
.../apache/maven/shared/archiver/MavenArchiver.java | 19 +------------------
.../maven/shared/archiver/MavenArchiverTest.java | 20 --------------------
2 files changed, 1 insertion(+), 38 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 5ec7903..7b4f053 100644
--- a/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java
+++ b/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java
@@ -97,10 +97,6 @@ public class MavenArchiver {
"${artifact.groupIdPath}/${artifact.artifactId}/" + "${artifact.baseVersion}/${artifact.artifactId}-"
+ "${artifact.baseVersion}${dashClassifier?}.${artifact.extension}";
- private static final Instant DATE_MIN = Instant.parse("1980-01-01T00:00:02Z");
-
- private static final Instant DATE_MAX = Instant.parse("2099-12-31T23:59:59Z");
-
private static final List<String> ARTIFACT_EXPRESSION_PREFIXES;
static {
@@ -681,10 +677,7 @@ public class MavenArchiver {
* @return the parsed timestamp as an {@code Optional<Instant>}, {@code empty} if input is {@code null} or input
* contains only 1 character (not a number)
* @since 3.6.0
- * @throws IllegalArgumentException if the outputTimestamp is neither ISO 8601 nor an integer, or it's not within
- * the valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z as defined by
- * <a href="https://pkwaredownloads.blob.core.windows.net/pem/APPNOTE.txt">ZIP application note</a>,
- * section 4.4.6.
+ * @throws IllegalArgumentException if the outputTimestamp is neither ISO 8601 nor an integer.
* @see <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318">Maven Wiki "Reproducible/Verifiable
* Builds"</a>
*/
@@ -702,11 +695,6 @@ public class MavenArchiver {
// Number representing seconds since the epoch
if (isNumeric(outputTimestamp)) {
final Instant date = Instant.ofEpochSecond(Long.parseLong(outputTimestamp));
-
- if (date.isBefore(DATE_MIN) || date.isAfter(DATE_MAX)) {
- throw new IllegalArgumentException(
- "'" + date + "' is not within the valid range " + DATE_MIN + " to " + DATE_MAX);
- }
return Optional.of(date);
}
@@ -716,11 +704,6 @@ public class MavenArchiver {
.withOffsetSameInstant(ZoneOffset.UTC)
.truncatedTo(ChronoUnit.SECONDS)
.toInstant();
-
- if (date.isBefore(DATE_MIN) || date.isAfter(DATE_MAX)) {
- throw new IllegalArgumentException(
- "'" + date + "' is not within the valid range " + DATE_MIN + " to " + DATE_MAX);
- }
return Optional.of(date);
} catch (DateTimeParseException pe) {
throw new IllegalArgumentException(
diff --git a/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java b/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java
index 2080e0a..5186f9d 100644
--- a/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java
+++ b/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java
@@ -1313,26 +1313,6 @@ class MavenArchiverTest {
.withCauseInstanceOf(DateTimeParseException.class);
}
- @ParameterizedTest
- @ValueSource(
- strings = {
- "0",
- "1",
- "9",
- "1980-01-01T00:00:01Z",
- "2100-01-01T00:00Z",
- "2100-02-28T23:59:59Z",
- "2099-12-31T23:59:59-01:00",
- "1980-01-01T00:15:35+01:00",
- "1980-01-01T10:15:35+14:00"
- })
- void testThrownParseOutputTimestampInvalidRange(String outputTimestamp) {
- // date is not within the valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z
- assertThatExceptionOfType(IllegalArgumentException.class)
- .isThrownBy(() -> MavenArchiver.parseBuildOutputTimestamp(outputTimestamp))
- .withMessageContaining("is not within the valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z");
- }
-
@ParameterizedTest
@CsvSource({
"2011-12-03T10:15:30+01,1322903730",