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