[core-libs] RFR (L): 8010319: Implementation of JEP 181: Nest-Based Access Control

Peter Levart peter.levart at gmail.com
Tue May 22 15:07:10 UTC 2018



On 05/22/2018 12:36 PM, Peter Levart wrote:
> So how about putting the nestmate access logic just before the last if 
> (!successSoFar) { return false; }:
>
>         // Check for nestmate access if member is private
>         if (!successSoFar && Modifier.isPrivate(modifiers)) {
>           // assert: targetClass == null || isSubclassof(targetClass, 
> memberClass)
>           // Note: targetClass may be outside the nest, but that is okay
>           //       as long as memberClass is in the nest.
>           successSoFar = areNestMates(currentClass, memberClass);
>         }
>
>         if (!successSoFar) {
>             return false;
>         }
>
>
> This would not penalize access to package-private and protected 
> members with areNestMates() JNI calls and maybe caching will not be 
> needed at all.

Ah, just leave it as is. The if (Modifier.isPrivate(modifiers)) already 
makes sure that areNestMates is called only for private members.

Peter



More information about the core-libs-dev mailing list