> 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

Reply via email to