On Wed, 24 Jun 2026 20:47:20 GMT, Justin Lu <[email protected]> wrote:

>> This PR corrects Locale parsing logic for extra languages. The BCP syntax 
>> enforces that extlangs may only follow `2*3 ALPHA` langs. This is also 
>> reinforced by the syntax comment described in `LanguageTag.parse` (which is 
>> based off the BNF). However, the current implementation does not respect 
>> this, and allows extlangs to follow `4ALPHA` (future use) as well as 
>> `5*8ALPHA` langs.
>> 
>> For example, `Locale.forLanguageTag("quux-bar").toLanguageTag()` returns the 
>> extlang "bar" when it should return the lang "quux" and discard the extlang 
>> "bar".
>> 
>> This is likely an oversight and should be fixed rather than kept and 
>> specified as a BCP deviation, since it is non standard for extlangs to 
>> follow those previously mentioned longer tags.
>> 
>> I can file a release note if deemed warranted since the acceptable inputs 
>> shrink as a result (even if the correct behavior). Personally, I would lean 
>> towards not filing one since such occurrences would be non-standard as there 
>> are no extlangs that follow a non 2-3 length language prefix.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Justin Lu has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Review: clean up test comment

Marked as reviewed by naoto (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/31663#pullrequestreview-4565813201

Reply via email to