RFR: 8323699: MessageFormat.toPattern() generates non-equivalent MessageFormat pattern [v7]
Justin Lu
jlu at openjdk.org
Fri Feb 2 18:44:06 UTC 2024
On Fri, 2 Feb 2024 01:54:12 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:
>> test/jdk/java/text/Format/MessageFormat/MessageFormatToPatternTest.java line 70:
>>
>>> 68: @BeforeAll
>>> 69: public static void setup() {
>>> 70: savedLocale = Locale.getDefault();
>>
>> I'm not sure we need to save the default locale and restore it, unless I'm missing something.
>
> We are verifying output that includes floating point numbers, and the current locale affects that:
>
> jshell> Locale.setDefault(Locale.US);
>
> jshell> new MessageFormat("{0}").format(new Object[] { 1.23 });
> $9 ==> "1.23"
>
> jshell> Locale.setDefault(Locale.FRENCH);
>
> jshell> new MessageFormat("{0}").format(new Object[] { 1.23 });
> $11 ==> "1,23"
Right, that makes sense.
>> test/jdk/java/text/Format/MessageFormat/MessageFormatToPatternTest.java line 104:
>>
>>> 102: Arguments.of("{0,choice,0.0#option A: {0}|1.0#option B: {0}'}'}", "option B: 1.23}"),
>>> 103: Arguments.of("{0,choice,0.0#option A: {0}|2.0#option B: {0}'}'}", "option A: 1.23"),
>>> 104:
>>
>> Suggestion:
>>
>> // Absurd double quote examples
>> Arguments.of("Foo '}''''''''}' {0,number,bar'}' '}' } baz ", "Foo }''''} bar} } 1 baz "),
>> Arguments.of("'''}''{'''}''''}'"), "'}'{'}''}"),
>
> Thanks, should be fixed.
Thanks for correcting the suggested test case, second argument had the extra `)` on accident.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17416#discussion_r1476525565
PR Review Comment: https://git.openjdk.org/jdk/pull/17416#discussion_r1476524867
More information about the core-libs-dev
mailing list