<i18n dev> RFR: JDK-8317612: ChoiceFormat and MessageFormat constructors call non-final public method [v2]
Joe Darcy
darcy at openjdk.org
Tue Oct 24 04:34:29 UTC 2023
On Fri, 6 Oct 2023 18:07:37 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8317630) which makes the implications of overriding _ChoiceFormat::applyPattern_ and _MessageFormat::applyPattern_ apparent by adding a implSpec tag to the method.
>>
>> That is, the constructors of both ChoiceFormat and MessageFormat call the public and non-final applyPattern method; any changes in the applyPattern of a subclass will be reflected in the constructors as well.
>
> Justin Lu has updated the pull request incrementally with one additional commit since the last revision:
>
> tag setChoices as well
I assume this issue was filed (directly or indirectly) in response to the javac lint warning added in JDK 21 under JDK-8015831.
I recommend considering how to address the underlying issue of the constructors calling overridable methods. For example, can a private method be defined that is called from the constructor and the public method?
In any case, I think one goal of bug should be to remove the warning condition, preferably by removing the condition, but, if not, by adding a `@SuppressedException((this-escape")`.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16064#issuecomment-1776523348
More information about the i18n-dev
mailing list