JDK-8166928 : TZupdater failing with tzdata2016g release due to missing version information
  • Type: Bug
  • Component: tools
  • Sub-Component: updaters
  • Affected Version: 2.1.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2016-09-29
  • Updated: 2016-12-20
  • Resolved: 2016-11-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
2.1.1 b01Fixed
Related Reports
Duplicate :  
Relates :  
tzupdater2.1.0-b04 is failing with tzdata2016g due to unset VERSION field in Makefile that is a part of IANA tzdata distribution:
$java -jar tzupdater.jar -v -l http://www.iana.org/time-zones/repository/releases/tzdata2016g.tar.gz
java.home: /usr/lib/jvm/java-8-oracle/jre
java.vendor: Oracle Corporation
java.version: 1.8.0_101
tzupdater version 2.1.0-b04
JRE tzdata version: tzdata2016d
Downloaded file to /tmp/tz.tmp_4/tzdata.tar.gz
Source directory does not contain file: VERSION

/tmp/tz.tmp/VERSION file was created by tzupdater but it contains incorrect value generated from tzdata distribution's Makefile:

According to discussion on tz@iana.org mail-list the assumption that VERSION field should contain the release version number (i.e. 2016g) is no longer valid: http://mm.icann.org/pipermail/tz/2016-September/024221.html

Important Note: Since IANA's "tzdata2016g" release doesn't have version information mentioned in either "makefile" (pre-2016g release) or "version" file (introduced from 2016h), the workaround mentioned in this bug should be applied if someone wants to update their JDK/JRE with tzdata2016g version in particular.

SQE testing and download testing is done. Should go live in couple of days.

Is there a date which tzupdater 2.1.1 will be released?

Hi Kevin, The main reason to wait for the confirmation was, having version information in "version" file was implemented as suggested by "Howard Hinnant" and this was not documented officially, thinking someone might be suggesting a new better and simpler approach for this. But finally, looks like the current approach will be officially documented as mentioned by Paul here: http://mm.icann.org/pipermail/tz/2016-November/024520.html Having this information now, I will start to work on this and provide the further updates soon.

Ramanand: I'm confused, isn't the code to write on our side? (to the tzupdater tool?) We are just waiting for them to confirm the version info is now in the "version" file. Can we not implement something that checks both the old makefile and the new version file? Without this, customers cannot use the tzupdater tool right? It's essentially broken now unless they edit the tzdata file manually.

Hi Kevin, it is still not confirmed. I was thinking it will happen before the coming release, but looks like it wont happen. The next release of IANA tzdata is happening very soon(within few days) because of Tonga returns to DST on 2016-11-06.

Any update on confirming the "version" file support?

As per tzdata maintainers, addition of the "version" file is not yet supported and documented officially. Also, there is no confirmation that this is the way that future tzdata will have version information. I am checking with them on this.

So this means the tzupdater tool needs to be updated right? HP would like to know if we can give an estimate of when they patched tool will be ready?

2016h was released today. Now it contains 'version' file with version string inside, i.e. 2016h. It can be utilized as a replacement for Makefile's VERSION variable.

Is it expected that with 2016h, the version info will return and this will not be a bug anymore?

TZUpdater README updated with the workaround necessary for this issue : http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html#issues

Due to new formatting changes in the IANA maintained tzdata bundle, the TZUpdater tool fails to determine the tzdata version when parsing the tzdata2016.tar.gz resource bundle. A solution is being investigated. In the interim, users can follow the steps below if they need to update their JRE/JDK installations to tzdata2016g level. ==================================================== Download the recently released tzdata.tar.gz file : https://www.iana.org/time-zones/repository/releases/tzdata2016g.tar.gz Extract the file to a local directory and modify the Makefile. Change : VERSION= unknown to : VERSION= 2016g * tar up contents of the directory to create tzdata2016g.tar. * gzip the tar file to reproduce the tzdata2016g.tar.gz file. Run the TZUpdater tool with the -l <URL resource> option where 'URL resource' points at the newly created tzdata2016g.tar.gz file. A corresponding SHA-512 checksum file will need to be created in the same directory that's hosting the new .gz file. It needs to contain the SHA-512 hash calculated from the gz file contents. e.g. <JDK_HOME>/bin/java -jar tzupdater.jar -l file:///tmp/tzdata/tzdata2016g.tar.gz Further information about how to create the sha512 file is available at http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html#override

The release version is only left in NEWS file of tzdata distribution package: the first tzdata[year][release] entry is the latest release version. However, the version can be found in 'version' file inside tzcode or complete distributions files: http://www.iana.org/time-zones/repository/releases/tzcode2016g.tar.gz http://www.iana.org/time-zones/repository/releases/tzdb-2016g.tar.lz