This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch maven-archiver-3.x in repository https://gitbox.apache.org/repos/asf/maven-archiver.git
The following commit(s) were added to refs/heads/maven-archiver-3.x by this push: new 369127c [MSHARED-1445] Unix timestamps since the epoch are not subject to the boundary checks 369127c is described below commit 369127cd9b7eba79100100411d622b53308b9829 Author: Michael Osipov <micha...@apache.org> AuthorDate: Mon Oct 14 22:54:48 2024 +0200 [MSHARED-1445] Unix timestamps since the epoch are not subject to the boundary checks This closes #73 --- src/main/java/org/apache/maven/archiver/MavenArchiver.java | 8 +++++++- src/test/java/org/apache/maven/archiver/MavenArchiverTest.java | 9 +++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/maven/archiver/MavenArchiver.java b/src/main/java/org/apache/maven/archiver/MavenArchiver.java index 5b3e2f7..c818a46 100644 --- a/src/main/java/org/apache/maven/archiver/MavenArchiver.java +++ b/src/main/java/org/apache/maven/archiver/MavenArchiver.java @@ -758,7 +758,13 @@ public class MavenArchiver { // Number representing seconds since the epoch if (isNumeric(outputTimestamp)) { - return Optional.of(Instant.ofEpochSecond(Long.parseLong(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); } // no timestamp configured (1 character configuration is useful to override a full value during pom diff --git a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java index 97850c5..72ab4e2 100644 --- a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java +++ b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java @@ -1342,9 +1342,6 @@ class MavenArchiverTest { assertThat(parseBuildOutputTimestamp("1570300662").get().getEpochSecond()) .isEqualTo(1570300662L); - assertThat(parseBuildOutputTimestamp("0").get().getEpochSecond()).isZero(); - assertThat(parseBuildOutputTimestamp("1").get().getEpochSecond()).isEqualTo(1L); - assertThat(parseBuildOutputTimestamp("2019-10-05T18:37:42Z").get().getEpochSecond()) .isEqualTo(1570300662L); assertThat(parseBuildOutputTimestamp("2019-10-05T20:37:42+02:00").get().getEpochSecond()) @@ -1372,9 +1369,6 @@ class MavenArchiverTest { @ParameterizedTest @CsvSource({ - "0,0", - "1,1", - "9,9", "1570300662,1570300662", "2147483648,2147483648", "2019-10-05T18:37:42Z,1570300662", @@ -1410,6 +1404,9 @@ class MavenArchiverTest { @ParameterizedTest @ValueSource( strings = { + "0", + "1", + "9", "1980-01-01T00:00:01Z", "2100-01-01T00:00Z", "2100-02-28T23:59:59Z",