> 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 two additional commits since the last revision: - include ascending order stipulation in constuctor as well - include apiSpec wording, move to patterns section ------------- Changes: - all: https://git.openjdk.org/jdk/pull/17856/files - new: https://git.openjdk.org/jdk/pull/17856/files/f1f1dc41..8e5bbe05 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=17856&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17856&range=03-04 Stats: 34 lines in 1 file changed: 10 ins; 14 del; 10 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