Tomcat 8.5.70 build fails with exception build.xml:1421: java.lang.RuntimeException: last modification time '1628167800000' is too big ( > 8589934591 ) at org.apache.tools.tar.TarOutputStream.failForBigNumber(TarOutputStream.java:599) at org.apache.tools.tar.TarOutputStream.failForBigNumber(TarOutputStream.java:590) at org.apache.tools.tar.TarOutputStream.failForBigNumbers(TarOutputStream.java:578) at org.apache.tools.tar.TarOutputStream.putNextEntry(TarOutputStream.java:299) at org.apache.tools.ant.taskdefs.Tar.tarResource(Tar.java:504) at org.apache.tools.ant.taskdefs.Tar.tarFile(Tar.java:378) at org.apache.tools.ant.taskdefs.Tar.tar(Tar.java:695) at org.apache.tools.ant.taskdefs.Tar.execute(Tar.java:341) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99) at org.apache.tools.ant.Task.perform(Task.java:350) at org.apache.tools.ant.Target.execute(Target.java:449) at org.apache.tools.ant.Target.performTasks(Target.java:470) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391) at org.apache.tools.ant.Project.executeTarget(Project.java:1364) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1254) at org.apache.tools.ant.Main.runBuild(Main.java:830) at org.apache.tools.ant.Main.startAnt(Main.java:223) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101) The reason is an improper timestamp literal, introduced with tag 8.5.70 commit 3d2e8b196, which has too many trailing zeroes. https://github.com/apache/tomcat/commit/3d2e8b1964d4dff3c0656618edc0b09d0d5634b8#diff-b62863571bd045ee04f5a84b5895a5160f4d3392a10d167f477d1c0c782fb3d8R36
Just set ant.timesramp.now=not.a.number in build.properties to build from the 8.5.70 tag This change was only in the tag so no change is required in 8.5.x
What is your version of Apache Ant? According to META-INF/MANIFEST.MF files, the release was built with Ant-Version: Apache Ant 1.9.16 The files (*.jar and *.class) in apache-tomcat-8.5.70.zip have a consistent timestamp of 2021-08-09 16:17:14, so apparently the value of ant.tstamp.now was ignored. The value of ant.tstamp.now in build.properties.default in the source archive (apache-tomcat-8.5.70-src.zip) is the same as in the git commit that was referenced earlier. [[[ # 2021-08-05 08:50:00 -0400 = 1628167800000 ant.tstamp.now=1628167800000 ]]] Documentation for tstamp task of Apache Ant: https://ant.apache.org/manual-1.9.x/Tasks/tstamp.html https://ant.apache.org/manual/Tasks/tstamp.html
I added a comment to the build.properties.default file (in main, 10.0.x, 9.0.x and 8.5.x branches of Apache Tomcat) and amended "ReleaseProcess" page on the wiki.
The Ant version used was 1.10.7.