[Nestmates] RFR: 8191114: [Nestmates] Update access control exception handling and other features per final JVMS proposal

David Holmes david.holmes at oracle.com
Fri Dec 15 08:56:16 UTC 2017


And updated in place to merge in the classfile version 54 changes - all 
jcod files needed updating.

David

On 15/12/2017 5:48 PM, David Holmes wrote:
> Updated webrev:
> 
> http://cr.openjdk.java.net/~dholmes/8191114/webrev.v1/
> 
> Only difference is classFileParser.cpp. The nestmate attributes should 
> only be processed in a Java 10 (for now) version classfile.
> 
> Thanks,
> David
> 
> On 13/12/2017 5:31 PM, David Holmes wrote:
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8191114
>> webrev: http://cr.openjdk.java.net/~dholmes/8191114/webrev/
>>
>> The final proposed changes to the JVMS have been discussed by the EG 
>> and it is time to bring everything into line with the proposed spec.
>>
>> The main changes are:
>> - Process for determining the nest-host has changed, specifically:
>>    - same package check is done first**
>>    - IncompatibleClassChangeError is thrown instead of IllegalAccessError
>> - A self-reference is permitted in the NestMembers array
>> - A self-reference is not permitted in the NestHost attribute
>> - Duplicate entries are permitted in the NestMembers array
>> - Invokeinterface use for private interface methods is permitted 
>> regardless of classfile version (so no exception saying "you should 
>> use invokespecial").
>>
>> ** This had a disruptive impact on the tests as using Object and 
>> Object[] as "bad hosts" now hit the "not in same package" error 
>> instead of the intended error - so these had to be replaced with a new 
>> class defined in the same (unnamed) package.
>>
>> All tests were updated to match the changes, and new tests added where 
>> needed. In particular:
>> - nest membership tests had to add the bad "SelfHost" case
>> - reflection API getNestMembers() had to allow for and test, 
>> self-reference and duplicate entries [the spec is being clarified 
>> under JDK-8193408]
>>
>> Some minor cleanups:
>> - src/hotspot/share/classfile/stackMapFrame.hpp
>>    - reverted leftover copyright year change (file is not modified 
>> from mainline version)
>> -  src/hotspot/share/classfile/verifier.cpp
>>    - reverted leftover layout and whitespace changes (file is not 
>> modified from mainline version)
>>
>> Thanks,
>> David


More information about the valhalla-dev mailing list