On Mon, 6 Dec 2021 18:52:51 GMT, Joe Wang <jo...@openjdk.org> wrote:

>> Naoto Sato has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Use isFixedOffset() instead of useDaylightTime()
>
> src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java 
> line 31:
> 
>> 29: 
>> 30: import java.text.MessageFormat;
>> 31: import java.time.ZoneId;
> 
> nit, the import is not used?

Right. Removed.

> test/jdk/sun/util/resources/TimeZone/ChineseTimeZoneNameTest.java line 66:
> 
>> 64: 
>> 65:     @Test(dataProvider="locales")
>> 66:     public void test_ChineseTimeZoneNames(Locale testLoc, Locale 
>> resourceLoc) {
> 
> Does this test exercise the problem as in the original test? Do we need a 
> test to reproduce the calling sequence as the original test?
> 
> The original issue seems to me was that the names were dependent on the order 
> of calls, due to the name being cached. That is, if utcNameIn("zh-Hant-HK") 
> is called first, subsequent call utcNameIn("zh-MO") would get the cached name 
> from the call (zh-Hant-HK), but if the later is called first, it would not 
> have the problem, that is, the following would return a correct name (協調世界時間):
> utcNameIn("zh-MO"); utcNameIn("zh-Hant-HK"); utcNameIn("zh-MO");

`協調世界時間` is actually coming from `COMPAT` provider, which is wrong. The 
expected name `世界標準時間` in CLDR is in `zh-Hant` resource bundle which is not 
available in `COMPAT` provider. Thus, comparing `zh-MO` and `zh-Hant` names 
effectively asserts that the name is correctly coming from `CLDR` provider. I 
confirmed that this regression test did fail with the runtime without the 
proposed fix.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6709

Reply via email to