jdk/src/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java
--- a/jdk/src/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java Wed Apr 03 12:47:15 2013 -0400
+++ b/jdk/src/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java Wed Apr 03 10:32:38 2013 -0700
@@ -303,9 +303,7 @@
dfs.setNaN(getNaN(langTag, dfs.getNaN()));
dfs.setPercent(getPercent(langTag, dfs.getPercent()));
dfs.setPerMill(getPerMill(langTag, dfs.getPerMill()));
- if (isNativeDigit(langTag)) {
- dfs.setZeroDigit(getZeroDigit(langTag, dfs.getZeroDigit()));
- }
+ dfs.setZeroDigit(getZeroDigit(langTag, dfs.getZeroDigit()));
ref = new SoftReference<>(dfs);
decimalFormatSymbolsCache.put(locale, ref);
}
@@ -420,9 +418,13 @@
return false;
}
+ int calid = getCalendarID(locale.toLanguageTag());
+ if (calid <= 0 || calid >= calIDToLDML.length) {
+ return false;
+ }
+
String requestedCalType = locale.getUnicodeLocaleType("ca");
- String nativeCalType =
- calIDToLDML[getCalendarID(locale.toLanguageTag())]
+ String nativeCalType = calIDToLDML[calid]
.replaceFirst("_.*", ""); // remove locale part.
if (requestedCalType == null) {