src/share/classes/java/text/DateFormatSymbols.java

Print this page
rev 6352 : imported patch 7162007

@@ -50,10 +50,11 @@
 import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import sun.util.locale.provider.LocaleProviderAdapter;
 import sun.util.locale.provider.LocaleServiceProviderPool;
+import sun.util.locale.provider.ResourceBundleBasedAdapter;
 import sun.util.locale.provider.TimeZoneNameUtility;
 
 /**
  * <code>DateFormatSymbols</code> is a public class for encapsulating
  * localizable date-time formatting data, such as the names of the

@@ -678,17 +679,14 @@
         }
 
         // Initialize the fields from the ResourceBundle for locale.
         LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(DateFormatSymbolsProvider.class, locale);
         // Avoid any potential recursions
-        switch (adapter.getAdapterType()) {
-        case HOST:
-        case SPI:
+        if (!(adapter instanceof ResourceBundleBasedAdapter)) {
             adapter = LocaleProviderAdapter.getResourceBundleBased();
-            break;
         }
-        ResourceBundle resource = adapter.getLocaleData().getDateFormatData(locale);
+        ResourceBundle resource = ((ResourceBundleBasedAdapter)adapter).getLocaleData().getDateFormatData(locale);
 
         // JRE and CLDR use different keys
         // JRE: Eras, short.Eras and narrow.Eras
         // CLDR: long.Eras, Eras and narrow.Eras
         if (resource.containsKey("Eras")) {