<i18n dev> RFR: 8341366: Suspicious check in Locale.getDisplayName(Locale inLocale)

Naoto Sato naoto at openjdk.org
Tue Oct 8 21:37:02 UTC 2024


On Tue, 1 Oct 2024 21:46:44 GMT, Justin Lu <jlu at openjdk.org> wrote:

> Please review this PR which modifies a suspicious check in the fallback of `Locale.getDisplayName(Locale inLocale)`.
> 
> As a fallback, a hard coded pattern is used. The previous code outputted the qualifiers if the `displayNames` array had length greater than 2. Just a few lines above, the array is initialized with a length of 3 and so the check is pointless.
> 
> It would be better, if replaced with a null check for the last element of the `displayNames` array, as that element may be null if there are no qualifiers. See L2317 ,
> 
> `qualifierNames.length != 0 ? formatList(qualifierNames, listCompositionPattern) : null`
> 
> For example, now a fallback (with no qualifiers) might look like: `German` instead of `German (null)`.
> But will remain the same (with qualifiers): `German (Germany)`.

LGTM

src/java.base/share/classes/java/util/Locale.java line 2331:

> 2329:                 result.append(" (");
> 2330:                 result.append((String) displayNames[2]);
> 2331:                 result.append(')');

These `append`s can be chained, but probably it's my preference.

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

Marked as reviewed by naoto (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/21298#pullrequestreview-2355583322
PR Review Comment: https://git.openjdk.org/jdk/pull/21298#discussion_r1792537903


More information about the i18n-dev mailing list