RFR: 8065172: More core reflection final and volatile annotations

Peter Levart peter.levart at gmail.com
Mon Dec 8 21:24:02 UTC 2014

On 12/08/2014 09:31 PM, Martin Buchholz wrote:
> (sorry for missing this message earlier)
> On Tue, Dec 2, 2014 at 1:49 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
>>> http://cr.openjdk.java.net/~martin/webrevs/openjdk9/core-reflection-more-safety/

Hi Martin,

I see lots of "changes" in javadocs that appear to have same text. Do 
you know why?

>> I am not convinced about the use of CAS. If we can get away with just volatile fields I think the code is simpler. Are you concerned there are cases of identity and mutability?
> Yes, I'm trying to write this code in the safest possible way, never
> for example returning distinct but equivalent Type objects to a user,
> possibly triggering very obscure bugs in non-jdk code.  If this code
> is not performance crititcal (which I believe to be true), doing it
> this way seems best.  If it is performance crititcal, we can switch to
> Unsafe CAS or even use Unsafe CAS plus risky relaxed reads as Peter
> has suggested (which would improve performance on weak-memory-model
> platforms as seen on other email threads).

"Interned" Types can not be guaranteed, since they are rooted on members 
of j.l.Class (Method, Field, Constructor), which can be GC-ed because of 

- class redefinition
- memory pressure (see j.l.Class.reflectionData field, which points to 

...and next time you request them, new instances will be created and new 
instances of Types with them.

Regards, Peter

More information about the core-libs-dev mailing list