On Mon, 17 Jul 2023 21:04:48 GMT, Justin Lu <j...@openjdk.org> wrote:

> Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8312197) 
> which updates the javadoc for the constructor of MessageFormat regarding a 
> `null` locale,
> 
> `MessageFormat` when created with a `null` locale may throw a 
> `NullPointerException` either during the object creation, or later when 
> `format()` is called by the `MessageFormat` object (test file has examples of 
> both). This change updates the specification of MessageFormat to make this 
> apparent. The wording is specifically chosen as 'may throw' since whether an 
> NPE is thrown depends on the subformat used by MessageFormat (see test 
> example of construction with null locale and no exception thrown).
> 
> The test for this change was merged with `Bug6481179.java` into 
> `MessageFormatExceptions.java` (As they both test exceptions). In addition, 
> some other exception testing regarding MessageFormat was added.
> 
> Thanks

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.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14911#discussion_r1265940997

Reply via email to