applyParentLocales() sets parentLocalesMap before populating the map
with data. It's possible that other threads look up the map without the
(full) data. So, a Map (local variable) should be populated and then
parentLocalesMap should be set to the Map. Also, parentLocalesMap needs
to be volatile or synchronized should be used when setting it. I don't
think it's necessary to use ConcurrentHashMap if the map is not modified
after its initialization.
Otherwise, the changes look good to me.
Masayoshi
On 6/24/2015 6:56 AM, Naoto Sato wrote:
Here is the updated webrev:
http://cr.openjdk.java.net/~naoto/8008577/webrev.01/
As to the 3rd comment below, I did not modify it because that would
simply duplicate the same piece of code in each getCandidateLocales()
implementation (from the current location).
Naoto
On 6/19/15 1:53 AM, Masayoshi Okutsu wrote:
Sorry for taking time. Here are my comments.
src/jdk.localedata/share/classes/sun/text/resources/*JavaTimeSupplementary*.java:
- The year range of the first line of the copyright header should be
"2015," for the new ones and "2013, 2015," for the updated ones.
- I wonder if JavaTimeSupplementary*.java contain some CR-LF lines
because some line spacing is wide in the webrev. (hard to determine that
from the webrev.)
src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java:
- applyParentLocales() needs to be thread-safe with parentLocalesMap?
src/java.base/share/classes/sun/util/resources/LocaleData.java:
- I wonder if the ResourceBundleBasedAdapter.getCandidateLocales()
implementations should return an optimized candidate list rather than
removing unsupported Locales from the list there.
test/sun/text/resources/LocaleDataTest.java:
+ * -cldr option specifies to test CLDR locale data. The default data
file name for this
+ * option is "CLDRLocaleData".
- The file name should be "LocaleData.cldr"?
test/java/text/Format/DecimalFormat/RoundingAndPropertyTest.java:
- added the bug id, but no changes to the test?
Thanks,
Masayoshi
On 6/9/2015 5:58 AM, Naoto Sato wrote:
Hello,
Please review the proposed changes for 8008577[1], the implementation
of the JEP-252[2]. The proposed changes are located at:
http://cr.openjdk.java.net/~naoto/8008577/webrev.00/
Here are the very high level summary of changes:
- Now the default locale provider order is CLDR,JRE,SPI.
- The CLDR data is upgraded from 21.0.1 to 27.0.0
- According the CLDR upgrade, the converter tool and the runtime are
now capable of "alias" and "parentLocales" tags.
- Regression tests that are specific to the existing JRE locale data
are now run specifically with "JRE,SPI" providers.
I would like the build group to review the build changes mainly with
the CLDR changes, and i18n group for the rest.
Naoto
--
[1]: https://bugs.openjdk.java.net/browse/JDK-8008577
[2]: https://bugs.openjdk.java.net/browse/JDK-8043554