<i18n dev> Request for review: 8000997: Multiple locale sensitive services cannot be loaded

Masayoshi Okutsu masayoshi.okutsu at oracle.com
Tue Oct 23 14:53:08 PDT 2012


Here are my comments.

SPILocaleProviderAdapter.java:

- Should "." be used for composing a class name of a Delegate instead of 
"$"?

- Is it necessary to iterate locale candidate in getImpl? (Iteration is 
performed outside of adapters when getting an adapter or a provider of 
pools.)

- addImpl() overrides any previous impl if there are multiple 
implementations for the same Locale. Should the first one preserved?

- map.keySet().contains(key) should be map.containsKey(key).

- When a factory of a provider returns null where null is not allowed, 
should the provider be removed from the map?

Thanks,
Masayoshi

On 2012/10/22 15:26, Naoto Sato wrote:
> Hello,
>
> I need a reviewer for the changes for 8000997, where the symptom is:
>
> "With the locale data deployment feature, locale sensitive services 
> SPI implementations cannot be loaded more than one implementation. 
> This is due to the fact that SPILocaleProviderAdapter only uses one 
> instance of SPI implementations. It should load all the available 
> installed providers as in JDK7, and correctly selects the instance 
> depending on the requester's locale."
>
> The gist of the fix is to prepare LocaleServiceProvider delegates for 
> each services in SPILocaleProviderAdapter, and they work with the real 
> SPI implementations. The proposed change is located here:
>
> http://cr.openjdk.java.net/~naoto/8000997/webrev.00/
>
> Naoto



More information about the i18n-dev mailing list