On Thu, 24 Sep 2026 01:58:17 GMT, moseoh <[email protected]> wrote:

>> `CLDRTimeZoneNameProviderImpl.getDisplayNameArray()` modifies the array
>> cached by `LocaleResources` when filling in missing time zone names.
>> As a result, names derived for a parent locale can be reused by a later
>> lookup for a child locale, making the result depend on lookup order.
>> 
>> This change copies the array before updating the zone ID and deriving
>> fallback names, leaving the cached array unchanged.
>> 
>> `TimeZoneNameOrderTest` compares a direct lookup with a lookup made after
>> querying the parent locale. The two runs use separate JVMs so that they
>> do not share cached state.
>> 
>> `TimeZoneNameConcurrencyTest` compares concurrent first lookups with
>> sequential lookups in a fresh JVM. It is included to cover the race seen
>> in 11u/17u/21u; it passes on mainline both before and after the fix.
>> 
>> Tested with jtreg sun/util, java/util/TimeZone and java/util/Locale on 
>> linux-x64.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> moseoh has updated the pull request incrementally with one additional commit 
> since the last revision:
> 
>   Check names returned by concurrent first lookups

@moseoh 
Your change (at version a239a70f641a8f76c0c653ed3b204599738cd4dc) is now ready 
to be sponsored by a Committer.

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

PR Comment: https://git.openjdk.org/jdk/pull/32867#issuecomment-5824727995

Reply via email to