<i18n dev> Integrated: JDK-6801704: ChoiceFormat::applyPattern inconsistency for invalid patterns
Justin Lu
jlu at openjdk.org
Tue Mar 5 22:40:51 UTC 2024
On Wed, 14 Feb 2024 22:29:07 GMT, Justin Lu <jlu at openjdk.org> wrote:
> Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8317756) which defines the behavior for creating ChoiceFormats with incorrect patterns. The wording is added to both the ChoiceFormat constructor and ChoiceFormat::applyPattern method.
>
> While ideally the inconsistent behavior itself could be fixed, this behavior has been long-standing for 20+ years and the benefit of consistent error handling does not outweigh the risk of breaking applications that may be relying on the "expected" incorrect behavior.
>
> Examples of the range of behavior, (all examples violate the pattern syntax defined in the class description)
>
>
> // no limit -> throws an expected IllegalArgumentException
> var a = new ChoiceFormat("#foo");
> // no limit or relation in the last subPattern -> discards the incorrect portion, 'baz' and continues
> var b = new ChoiceFormat("0#foo|1#bar|baz");
> b.format(2); // returns 'bar'
> // no relation or limit -> discards the incorrect portion, 'foo' and continues
> var c = new ChoiceFormat("foo");
> c.format(1); // throws AIOOBE
This pull request has now been integrated.
Changeset: b665fe3a
Author: Justin Lu <jlu at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/b665fe3ac10f4e85b91737228780b1d50ae81514
Stats: 21 lines in 1 file changed: 13 ins; 0 del; 8 mod
6801704: ChoiceFormat::applyPattern inconsistency for invalid patterns
Reviewed-by: naoto
-------------
PR: https://git.openjdk.org/jdk/pull/17856
More information about the i18n-dev
mailing list