> 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