diff -r 386de6da1ff0 -r db2c42dabfa4 jdk/src/share/classes/java/text/DateFormatSymbols.java --- a/jdk/src/share/classes/java/text/DateFormatSymbols.java Mon Apr 23 16:34:32 2012 +0200 +++ b/jdk/src/share/classes/java/text/DateFormatSymbols.java Tue Apr 24 21:06:16 2012 +0800 @@ -647,6 +647,8 @@ private static final ConcurrentMap> cachedInstances = new ConcurrentHashMap>(3); + private transient int lastZoneIndex = 0; + private void initializeData(Locale desiredLocale) { locale = desiredLocale; @@ -692,12 +694,24 @@ * the given time zone ID can't be located in the DateFormatSymbols object. * @see java.util.SimpleTimeZone */ - final int getZoneIndex(String ID) - { + final int getZoneIndex(String ID) { String[][] zoneStrings = getZoneStringsWrapper(); - for (int index=0; index