<i18n dev> RFR: 8039165: [Doc] MessageFormat null locale generates NullPointerException [v2]
Justin Lu
jlu at openjdk.org
Tue Jul 18 20:59:43 UTC 2023
On Mon, 17 Jul 2023 21:54:37 GMT, Naoto Sato <naoto at openjdk.org> wrote:
>> Justin Lu has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - Slight wording adjustment
>> - Review: Explicitly declare when NPE thrown instead of 'may'
>
> src/java.base/share/classes/java/text/MessageFormat.java line 396:
>
>> 394: * {@code NullPointerException} if {@code locale} is {@code null}
>> 395: * either during the creation of the {@code MessageFormat} object or later
>> 396: * when {@code format()} is called by the constructed {@code MessageFormat} object.
>
> It looks a bit vague as it contains `may`. I think it would be clearer if it explains a bit more, e.g., it throws NPE if any of the subformats require the locale, or along with those lines. Probably the same wording is needed at `format()` and other public methods that use the `locale` field.
The only other public methods that use `locale` are setLocale(), getLocale(), toString(), and equals(). In all of these cases I don't believe if a MessageFormat that was created with a null locale (and did not throw NPE) calls them, a NPE will occur in any case.
Thus I have updated the spec to not use 'may' and explicitly state NPE is thrown if a subformat is localized and needed by the MessageFormat.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14911#discussion_r1267298674
More information about the i18n-dev
mailing list