JDK-8212684 : TZupdater 2.2.0 not able to update with tzdata2018f release
  • Type: Bug
  • Component: tools
  • Sub-Component: updaters
  • Priority: P2
  • Status: Resolved
  • Resolution: Duplicate
  • Submitted: 2018-10-18
  • Updated: 2019-09-26
  • Resolved: 2019-09-26
Related Reports
Blocks :  
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Compiling TZDB fails with message:

Failed: java.lang.Exception: Failed while parsing file 'C:\Users\ME928~1.SYR\AppData\Local\Temp\tz.tmp_5\asia' on line 1655 'Rule       Japan   1948    1951
-       Sep     Sat>=8  25:00   0       S'
java.lang.Exception: Failed while parsing file 'C:\Users\ME928~1.SYR\AppData\Local\Temp\tz.tmp_5\asia' on line 1655 'Rule       Japan   1948    1951    -
S       Sat>=8  25:00   0       S'
        at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:377)
        at tools.tzdb.TzdbZoneRulesCompiler.compile(TzdbZoneRulesCompiler.java:191)
        at tools.tzdb.TzdbZoneRulesCompiler.<init>(TzdbZoneRulesCompiler.java:307)
        at com.sun.tools.tzupdater.ExternalModule.compileToJSRBinary(ExternalModule.java:153)
        at com.sun.tools.tzupdater.TimezoneUpdater.run(TimezoneUpdater.java:230)
        at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:634)
Caused by: tools.tzdb.DateTimeException: Invalid value for SecondOfDay value: 90000
        at tools.tzdb.ChronoField.checkValidValue(ChronoField.java:173)
        at tools.tzdb.LocalTime.ofSecondOfDay(LocalTime.java:210)
        at tools.tzdb.TzdbZoneRulesCompiler.parseMonthDayTime(TzdbZoneRulesCompiler.java:475)
        at tools.tzdb.TzdbZoneRulesCompiler.parseRuleLine(TzdbZoneRulesCompiler.java:399)
        at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:354)
        ... 5 more

FREQUENCY : always

TZUpdater tool will be patched after fixing - JDK-8212970, which requires JDK API change. Since tzdata2018g is already released with the patch provided in rearguard format, as a workaround for this issue please use the rearguard tzdata bundle with -l option. For tzdata2018g the command will look like this: java -jar tzupdater.jar -l https://web.cs.ucla.edu/~eggert/tz/release/2018g/tzdata2018g-rearguard.tar.gz

My comments at TZDB: https://mm.icann.org/pipermail/tz/2018-October/027051.html and at OpenJDK my proposal to change the JDK API: http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-October/056167.html

This is not just a problem with tzupdater - you run into the same problem when you try to patch openjdk, so a general tzdata problem. We have success with patching the tzdata release with the patch in https://mm.icann.org/pipermail/tz/2018-October/027032.html then replacing the openjdk tzdata with the rearguard version of the tzdata We're half-expecting a 2018g release that incorporates that patch, but not waiting for it to happen. (There's no reason for tzupdater not to be open source - has that happened yet?)

mail thread: https://mm.icann.org/pipermail/tz/2018-October/027032.html