<i18n dev> RFR: JDK-6801704: ChoiceFormat::applyPattern inconsistency for invalid patterns [v6]
Justin Lu
jlu at openjdk.org
Fri Mar 1 01:05:14 UTC 2024
> 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
Justin Lu has updated the pull request incrementally with one additional commit since the last revision:
wording: punctuation and use 'constructor'
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17856/files
- new: https://git.openjdk.org/jdk/pull/17856/files/8e5bbe05..aa1071e2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17856&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17856&range=04-05
Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/17856.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17856/head:pull/17856
PR: https://git.openjdk.org/jdk/pull/17856
More information about the i18n-dev
mailing list