--- old/make/jdk/src/classes/build/tools/cldrconverter/MetaZonesParseHandler.java 2018-04-11 09:27:10.307883523 -0700 +++ new/make/jdk/src/classes/build/tools/cldrconverter/MetaZonesParseHandler.java 2018-04-11 09:27:10.055878857 -0700 @@ -35,6 +35,8 @@ import org.xml.sax.SAXException; class MetaZonesParseHandler extends AbstractLDMLHandler { + final static String NO_METAZONE_KEY = "no.metazone.defined"; + private String tzid, metazone; // for java.time.format.ZoneNames.java @@ -101,10 +103,17 @@ assert qName.equals(currentContainer.getqName()) : "current=" + currentContainer.getqName() + ", param=" + qName; switch (qName) { case "timezone": - if (tzid == null || metazone == null) { + if (tzid == null) { throw new InternalError(); + } else if (metazone == null) { + String no_meta = get(NO_METAZONE_KEY); + put(NO_METAZONE_KEY, no_meta == null ? tzid : no_meta + " " + tzid); + CLDRConverter.info("No metazone defined for %s%n", tzid); + } else { + put(tzid, metazone); } - put(tzid, metazone); + tzid = null; + metazone = null; break; } currentContainer = currentContainer.getParent();