src/java.base/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java

Print this page
rev 12979 : imported patch 8062006


 107      * Default fallback adapter type, which should return something meaningful in any case.
 108      * This is either CLDR or FALLBACK.
 109      */
 110     static volatile LocaleProviderAdapter.Type defaultLocaleProviderAdapter = null;
 111 
 112     /**
 113      * Adapter lookup cache.
 114      */
 115     private static ConcurrentMap<Class<? extends LocaleServiceProvider>, ConcurrentMap<Locale, LocaleProviderAdapter>>
 116         adapterCache = new ConcurrentHashMap<>();
 117 
 118     static {
 119         String order = AccessController.doPrivileged(
 120                            new sun.security.action.GetPropertyAction("java.locale.providers"));
 121         List<Type> typeList = new ArrayList<>();
 122 
 123         // Check user specified adapter preference
 124         if (order != null && order.length() != 0) {
 125             String[] types = order.split(",");
 126             for (String type : types) {




 127                 try {
 128                     Type aType = Type.valueOf(type.trim().toUpperCase(Locale.ROOT));
 129                     if (!typeList.contains(aType)) {
 130                         typeList.add(aType);
 131                     }
 132                 } catch (IllegalArgumentException | UnsupportedOperationException e) {
 133                     // could be caused by the user specifying wrong
 134                     // provider name or format in the system property
 135                     LocaleServiceProviderPool.config(LocaleProviderAdapter.class, e.toString());
 136                 }
 137             }
 138         }
 139 
 140         defaultLocaleProviderAdapter = Type.CLDR;
 141         if (!typeList.isEmpty()) {
 142             // bona fide preference exists
 143             if (!typeList.contains(Type.CLDR)) {
 144                 // Append FALLBACK as the last resort.
 145                 typeList.add(Type.FALLBACK);
 146                 defaultLocaleProviderAdapter = Type.FALLBACK;




 107      * Default fallback adapter type, which should return something meaningful in any case.
 108      * This is either CLDR or FALLBACK.
 109      */
 110     static volatile LocaleProviderAdapter.Type defaultLocaleProviderAdapter = null;
 111 
 112     /**
 113      * Adapter lookup cache.
 114      */
 115     private static ConcurrentMap<Class<? extends LocaleServiceProvider>, ConcurrentMap<Locale, LocaleProviderAdapter>>
 116         adapterCache = new ConcurrentHashMap<>();
 117 
 118     static {
 119         String order = AccessController.doPrivileged(
 120                            new sun.security.action.GetPropertyAction("java.locale.providers"));
 121         List<Type> typeList = new ArrayList<>();
 122 
 123         // Check user specified adapter preference
 124         if (order != null && order.length() != 0) {
 125             String[] types = order.split(",");
 126             for (String type : types) {
 127                 type = type.trim().toUpperCase(Locale.ROOT);
 128                 if (type.equals("COMPAT")) {
 129                     type = "JRE";
 130                 }
 131                 try {
 132                     Type aType = Type.valueOf(type.trim().toUpperCase(Locale.ROOT));
 133                     if (!typeList.contains(aType)) {
 134                         typeList.add(aType);
 135                     }
 136                 } catch (IllegalArgumentException | UnsupportedOperationException e) {
 137                     // could be caused by the user specifying wrong
 138                     // provider name or format in the system property
 139                     LocaleServiceProviderPool.config(LocaleProviderAdapter.class, e.toString());
 140                 }
 141             }
 142         }
 143 
 144         defaultLocaleProviderAdapter = Type.CLDR;
 145         if (!typeList.isEmpty()) {
 146             // bona fide preference exists
 147             if (!typeList.contains(Type.CLDR)) {
 148                 // Append FALLBACK as the last resort.
 149                 typeList.add(Type.FALLBACK);
 150                 defaultLocaleProviderAdapter = Type.FALLBACK;