On Wed, 4 Jun 2025 21:20:46 GMT, Justin Lu <j...@openjdk.org> wrote: > Please review this PR which improves occurrences of lazy computation in > `Locale` and `BaseLocale`. > > Existing lazy initialization strategies such as CHM, static nested class, and > local inner class are replaced with Stable Values. > > Lambda usage is intentionally avoided in this change during `Locale` creation > and in static fields due to potential startup performance degradation as > noted by [JDK-8331932](https://bugs.openjdk.org/browse/JDK-8331932). > > Rather than convert `iso3166CodesMap` to a Stable Map, each ISO 3166 resource > is represented as a SV. Also, I did not think it was necessary to maintain a > SV for _both_ the array and set of ISO3166-1 alpha-2 codes.
src/java.base/share/classes/java/util/Locale.java line 1269: > 1267: public static String[] getISOCountries() { > 1268: String[] countries = ISO_3166_1_ALPHA2.get(); > 1269: return Arrays.copyOf(countries, countries.length); what about `return ISO_3166_1_ALPHA2.get().clone();` ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25646#discussion_r2128662123