A few zone entries miss out the standard timezone data because their standard name is not the mapping of metazone to standard name for the particular locale. This does a final check to ensure none of these values are empty, and copies across from the mapped zone if this is the case.
As this can be quite inefficient, I'll look into producing an additional property file that does the mappings in reverse. ChangeLog: 2008-07-07 Andrew John Hughes <[EMAIL PROTECTED]> * java/text/DateFormatSymbols.java: (getZoneStrings(ResourceBundle,Locale)): Handle missing standard zone names. -- Andrew :) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint = F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
Index: java/text/DateFormatSymbols.java =================================================================== RCS file: /sources/classpath/classpath/java/text/DateFormatSymbols.java,v retrieving revision 1.26 diff -u -u -r1.26 DateFormatSymbols.java --- java/text/DateFormatSymbols.java 7 Jul 2008 21:47:11 -0000 1.26 +++ java/text/DateFormatSymbols.java 7 Jul 2008 22:05:40 -0000 @@ -174,7 +174,32 @@ LocaleHelper.getFallbackLocale(res.getLocale()), ClassLoader.getSystemClassLoader()); } - allZones.addAll(systemZones.values()); + /* Final sanity check for missing values */ + for (String[] zstrings : systemZones.values()) + { + if (zstrings[1].equals("") && zstrings[2].equals("")) + { + for (Map.Entry<Object,Object> entry : properties.entrySet()) + { + String val = (String) entry.getValue(); + if (val.equals(zstrings[0])) + { + String key = (String) entry.getKey(); + String metazone = key.substring(0, key.indexOf(".")); + String type = properties.getProperty(metazone + "." + locale.getCountry()); + if (type == null) + type = properties.getProperty(metazone + ".DEFAULT"); + if (type != null) + { + String[] ostrings = systemZones.get(type); + zstrings[1] = ostrings[1]; + zstrings[2] = ostrings[2]; + } + } + } + } + } + allZones.addAll(systemZones.values()); } catch (MissingResourceException e) {