On Wed, 14 Feb 2024 22:29:07 GMT, Justin Lu <j...@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 <j...@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

Reply via email to