On Wed, 3 May 2023 19:13:58 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> Justin Lu has updated the pull request incrementally with four additional 
>> commits since the last revision:
>> 
>>  - Review comment: Replace wellFormed with parseSts to pass errorMsg to 
>> exception
>>  - Review comment: Adjust method names
>>  - Review comment: Use assertThrows and correct IAE to ILE
>>  - Review comment: improve legacy_tags id
>
> src/java.base/share/classes/sun/util/locale/LanguageTag.java line 446:
> 
>> 444:                 } else if (subtags[i].equals(PRIVUSE_VARIANT_PREFIX)) {
>> 445:                     privUseVarFound = true;
>> 446:                 }
> 
> These flags can become true but inside the loop cannot become false again.
> Is that correct?  For example, I think there can be multiple extension 
> singletons.

That was intentional as the booleans represent if a private prefix, singleton 
prefix, or "lvariant" has been found in general (not that the current position 
is the suffix of one of those prefixes).

Consider if there is a multiple extension singleton (eg: `a-BBB-CCC-DDD`)

Once singletonFound is set to `true`, it is assumed all further subtags should 
be lowercased unless it is a private use prefixed by "lvariant". Thus it would 
be folded to `a-bbb-ccc-ddd` as expected.

Did that address your point?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13679#discussion_r1184224520

Reply via email to