On Fri, 16 Jun 2023 17:18:38 GMT, Naoto Sato <na...@openjdk.org> wrote:

>> src/java.base/share/classes/sun/util/locale/BaseLocale.java line 175:
>> 
>>> 173:                             
>>> LocaleUtils.toLowerString(b.getLanguage()).intern(),
>>> 174:                             
>>> LocaleUtils.toTitleString(b.getScript()).intern(),
>>> 175:                             
>>> LocaleUtils.toUpperString(b.getRegion()).intern(),
>> 
>> don't lines 147 and 148 above already guarantee the language and region have 
>> correct case?
>
> 147,148 are in `getInstance()` and the BaseLocale key here is created with a 
> constructor, which simply copies the passed arguments. So normalization is 
> needed here

perhaps I am missing something, but aren't `language` and `region` being 
reassigned to the case adjusted values? So the values used to create the "key" 
BaseLocale instance reflect that case adjustment? (language is again 
potentially adjusted at line 162 to account for old iso codes, but that never 
results in the wrong case.)


        language = LocaleUtils.toLowerString(language);
        region = LocaleUtils.toUpperString(region);

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14404#discussion_r1232880865

Reply via email to