src/share/classes/sun/util/locale/provider/SPILocaleProviderAdapter.java

Print this page
rev 6116 : imported patch 7199750

@@ -110,11 +110,11 @@
      * following "<provider class name>Delegate" convention.
      */
     interface Delegate<P extends LocaleServiceProvider> {
         public void addImpl(P impl);
         public P getImpl(Locale locale);
-}
+    }
 
     /*
      * Obtain the real SPI implementation, using locale fallback
      */
     private static <P extends LocaleServiceProvider> P getImpl(Map<Locale, P> map, Locale locale) {

@@ -135,11 +135,11 @@
         private ConcurrentMap<Locale, BreakIteratorProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(BreakIteratorProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public BreakIteratorProvider getImpl(Locale locale) {

@@ -190,11 +190,11 @@
         private ConcurrentMap<Locale, CollatorProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(CollatorProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public CollatorProvider getImpl(Locale locale) {

@@ -224,11 +224,11 @@
         private ConcurrentMap<Locale, DateFormatProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(DateFormatProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public DateFormatProvider getImpl(Locale locale) {

@@ -272,11 +272,11 @@
         private ConcurrentMap<Locale, DateFormatSymbolsProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(DateFormatSymbolsProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public DateFormatSymbolsProvider getImpl(Locale locale) {

@@ -306,11 +306,11 @@
         private ConcurrentMap<Locale, DecimalFormatSymbolsProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(DecimalFormatSymbolsProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public DecimalFormatSymbolsProvider getImpl(Locale locale) {

@@ -340,11 +340,11 @@
         private ConcurrentMap<Locale, NumberFormatProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(NumberFormatProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public NumberFormatProvider getImpl(Locale locale) {

@@ -395,11 +395,11 @@
         private ConcurrentMap<Locale, CalendarDataProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(CalendarDataProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public CalendarDataProvider getImpl(Locale locale) {

@@ -436,11 +436,11 @@
         private ConcurrentMap<Locale, CalendarNameProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(CalendarNameProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public CalendarNameProvider getImpl(Locale locale) {

@@ -481,11 +481,11 @@
         private ConcurrentMap<Locale, CurrencyNameProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(CurrencyNameProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public CurrencyNameProvider getImpl(Locale locale) {

@@ -522,11 +522,11 @@
         private ConcurrentMap<Locale, LocaleNameProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(LocaleNameProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public LocaleNameProvider getImpl(Locale locale) {

@@ -577,11 +577,11 @@
         private ConcurrentMap<Locale, TimeZoneNameProvider> map = new ConcurrentHashMap<>();
 
         @Override
         public void addImpl(TimeZoneNameProvider impl) {
             for (Locale l : impl.getAvailableLocales()) {
-                map.put(l, impl);
+                map.putIfAbsent(l, impl);
             }
         }
 
         @Override
         public TimeZoneNameProvider getImpl(Locale locale) {