diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e721b2ffe..708f503cc 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -309,6 +309,7 @@ Miha
Mike Davis
Mike Roberts
Mike Williams
+Mikolaj Izdebski
Miroslav Zaťko
Mounir El Hajj
Nathan Beyer
diff --git a/WHATSNEW b/WHATSNEW
index b6476f61b..67c8f001a 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -25,6 +25,10 @@ Fixed bugs:
timestamps of files transferred recursively from a server.
Bugzilla Report 66001
+ * tstamp task would in certain cases parse the SOURCE_DATE_EPOCH environment variable
+ value to an incorrect date. This has now been fixed.
+ Github Pull Request #186
+
Other changes:
--------------
diff --git a/contributors.xml b/contributors.xml
index f0f5197c7..ddc55ecc8 100644
--- a/contributors.xml
+++ b/contributors.xml
@@ -1280,6 +1280,10 @@
Mike
Williams
+
+ Mikolaj
+ Izdebski
+
Miroslav
Zaťko
diff --git a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
index aa1034eae..ca10efe00 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
@@ -82,7 +82,7 @@ public class Tstamp extends Task {
try {
if (epoch != null) {
// Value of SOURCE_DATE_EPOCH will be an integer, representing seconds.
- d = new Date(Integer.parseInt(epoch) * 1000);
+ d = new Date(Long.parseLong(epoch) * 1000L);
log("Honouring environment variable " + ENV_SOURCE_DATE_EPOCH + " which has been set to " + epoch);
}
} catch(NumberFormatException e) {
diff --git a/src/tests/antunit/taskdefs/tstamp-test.xml b/src/tests/antunit/taskdefs/tstamp-test.xml
index 20c322762..1553d32ee 100644
--- a/src/tests/antunit/taskdefs/tstamp-test.xml
+++ b/src/tests/antunit/taskdefs/tstamp-test.xml
@@ -75,4 +75,35 @@ public class IsEpochIn1969Here implements Condition {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+