8179527: Ineffective use of volatile hurts performance of Charset.atBugLevel()

Langer, Christoph christoph.langer at sap.com
Tue Jun 27 18:32:51 UTC 2017

Hi Ogata,

I think I agree with Alan that the Charset.atBugLevel() method can completely be eliminated from java/nio/charset.

Ogata, would you respin your change to remove it and post it for review? I can then sponsor it for you.

@Alan: Do we need a CSR ("Compatibility & Specification Review") request here since support for "sun.nio.cs.bugLevel" will be removed?

Best regards

> -----Original Message-----
> From: Alan Bateman [mailto:Alan.Bateman at oracle.com]
> Sent: Dienstag, 27. Juni 2017 10:13
> To: Claes Redestad <claes.redestad at oracle.com>; Langer, Christoph
> <christoph.langer at sap.com>; Kazunori Ogata <OGATAK at jp.ibm.com>;
> core-libs-dev <core-libs-dev at openjdk.java.net>; nio-dev at openjdk.java.net
> Cc: ppc-aix-port-dev at openjdk.java.net
> Subject: Re: 8179527: Ineffective use of volatile hurts performance of
> Charset.atBugLevel()
> On 27/06/2017 08:36, Claes Redestad wrote:
> >
> > The check of Charset.atBugLevel in checkName should no longer happen
> > for the majority of situations, as that test is now only done if the
> > charset name is "" (see
> > https://bugs.openjdk.java.net/browse/JDK-8174831),
> Kazunori's mail didn't mention the JDK build he is using, it may have
> been JDK 8 rather than JDK 9.
> > since what differs between 1.4 and 1.5 was apparently whether or not
> > the empty string was to be accepted as a valid Charset...
> >
> > So yes, if we can get rid of the test altogether, we'll be even better
> > off!
> JDK-4786884 is the original issue. If there was any code dependent on
> the broken behavior in 1.4 then I would expect it should have been fixed
> by now. So I think it can be removed.
> -Alan

More information about the core-libs-dev mailing list