The following error was observed during compilation of tzdb.dat with latest JDK9 source:
Failed: java.time.zone.ZoneRulesException: Unknown time-zone ID: Africa/Asmera
java.time.zone.ZoneRulesException: Unknown time-zone ID: Africa/Asmera
at build.tools.tzdb.TzdbZoneRulesProvider.getZoneRules(TzdbZoneRulesProvider.java:98)
at build.tools.tzdb.TzdbZoneRulesCompiler.compile(TzdbZoneRulesCompiler.java:194)
at build.tools.tzdb.TzdbZoneRulesCompiler.main(TzdbZoneRulesCompiler.java:89)
The issue was observed during latest tzdata2014j integration (JDK-8064560).
The issue is cause by the following timezone linking behavior:
There is a Zone with name 'Africa/Nairobi' (defined in 'africa' tzdata file).
The zone link with name 'Africa/Asmara' is defined in the same 'africa' file. This link refers to 'Africa/Nairobi'.
And there is another link with name 'Africa/Asmera' defined in 'backward' tz file. It is linked to 'Africa/Asmara'.
It means that 'Africa/Asmera' linked to 'Africa/Nairobi' through another link (double link chain).
It seems that the current implementation of Tzdb compiler supports only direct links (link to the zone, but not to another link).