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

David Holmes david.holmes at oracle.com
Tue May 22 04:56:02 UTC 2018


Hi Mandy,

On 22/05/2018 2:14 PM, mandy chung wrote:
> 
> 
> On 5/21/18 8:41 PM, David Holmes wrote:
>>> Class.java
>>>
>>> 3988 Class<?>[] members = getNestMembers0();
>>>
>>> If the above fails with any LinkageError, what is the expected 
>>> behavior if Class::getNestMembers() is called the second time? will 
>>> it throw the same LinkageError?
>>
>> Based on the implementation it should throw the same error. We use 
>> constant-pool resolution to locate the member classes so if resolution 
>> fails then it must continue to fail for the same reason per the JVMS 
>> rules.
>>
>> Are you thinking that getNestMembers() should say something about this? 
> 
> That matches what I interpret from the spec.  I just want to confirm.  

Okay.

> It'd be good to have a test to cover that.

I can add a short loop to the negative testcases for this.

>>> Regarding Alan's and Peter's comment on the spec clarification on 
>>> primitive type and array type, it is reasonable to take a pass on all 
>>> reflection APIs and make the text explicit consistently if this class 
>>> is a primitive type and array type.   I will file an issue to track 
>>> this.   Class::getModifiers does return the modifier of the component 
>>> type whereas Class::getEnclosingClass returns null if this class is 
>>> an array type even if the component type has an enclosing class.   
>>> Clarification would help developers.
>>
>> Thanks. I will add the small clarification that Alan requested on 
>> getNestHost().
> 
> That works too.

Ok. Stay tuned.

Thanks,
David
-----

> thanks
> Mandy
> 
> 


More information about the core-libs-dev mailing list