[Nestmates] RFR: 8197395: [Nestmates] VerifyAccess.isMemberAccessible must not allow private access between legacy nested types

mandy chung mandy.chung at oracle.com
Fri Feb 9 00:13:35 UTC 2018



On 2/7/18 11:53 PM, David Holmes wrote:
> bug: https://bugs.openjdk.java.net/browse/JDK-8197395
> webrev: http://cr.openjdk.java.net/~dholmes/8197395/webrev/
>
> With the fix for JDK-8196320 however, isSamePackageMember() (now 
> renamed to areNestMates) first checks Reflection.areNestMates() and 
> then if that is false, the old enclosing-class check. Consequently the 
> check can now return true for both nestmate classfiles and earlier 
> classfiles! That is wrong.
>
> To fix this we replace the call to VerifyAccess.areNestMates() with 
> Reflection.areNestMates().
>

The fix looks fine.   Thanks for the clear description of the issue.  
These two methods could cause confusion to the reader and always need to 
go the javadoc.  What about renaming VerifyAccess::areNestMates to 
areNestmatesOrPreNestmates?

> There is also a temporary psuedo-assertion verifying that if we've 
> granted private nestmate access then refc==defc (which should be 
> assured by the resolution of the member being accessed).
>

Why do you want myassert?

Mandy


More information about the valhalla-dev mailing list