RFR 8217339: ClassCircularityError loading NumberFormatProvider

Mandy Chung mandy.chung at oracle.com
Tue Jan 22 20:47:49 UTC 2019



On 1/22/19 12:29 PM, Naoto Sato wrote:
> Hi Roger,
>
> I'd use Locale.ROOT instead of Locale.ENGLISH in String.format(), 
> which is the language invariant locale.
>

Alternatively, convert those String.format to string concatenation and they
are pretty simple format only one argument.

> Other changes look good.
>
> BTW,
>
> > I have not found a reproducer for jdk 12, it only occurs on new work 
> for
> > jdk 13.
>
> Is this new code in 13? l10n causes this type of circularity exception 
> during the VM boot up.
>

I also want to understand what changes in 13 causes the difference.

Is there a regression test?

Mandy

> Naoto
>
> On 1/22/19 12:08 PM, Roger Riggs wrote:
>> A ClassCircularityError can occur via the ClassDescriptor code that 
>> uses String.format to
>> concatenate strings.
>>
>> Please review a change to use string concatenation or a known locale 
>> instead
>> of the default locale in calls to String.format.
>>
>> The java.lang.constant APIs can be used early in the startup sequence 
>> before
>> the Locales and providers are initialized.
>>
>> See the bug report for the full stack trace.
>>    https://bugs.openjdk.java.net/browse/JDK-8217339
>>
>> I have not found a reproducer for jdk 12, it only occurs on new work 
>> for jdk 13.
>>
>> Webrev:
>>   http://cr.openjdk.java.net/~rriggs/webrev-circ-error-8217339-1
>>
>> Thanks, Roger
>>



More information about the core-libs-dev mailing list