RFR 8058575: IllegalAccessError trying to access package-private class from VM anonymous class

Coleen Phillimore coleen.phillimore at oracle.com
Tue Sep 6 21:03:10 UTC 2016


Looks good!
Coleen

On 9/6/16 3:43 PM, harold seigel wrote:
> Hi Coleen,
>
> Please review these latest webrevs.  They contain the two changes you 
> requested, calling new_symbol() and moving test TestBadHostClass.java.
>
> http://cr.openjdk.java.net/~hseigel/bug_8058575.hs.4/
>
> http://cr.openjdk.java.net/~hseigel/bug_8058575.jdk.4/
>
> Thanks! Harold
>
>
> On 9/2/2016 3:22 PM, Coleen Phillimore wrote:
>>
>> http://cr.openjdk.java.net/~hseigel/bug_8058575.hs.3/src/share/vm/classfile/classFileParser.cpp.udiff.html 
>>
>>
>> Can you call new_symbol instead?  SymbolTable::lookup() should have 
>> been an internal API.
>>
>> *+ _class_name = SymbolTable::lookup(new_anon_name,*
>>
>> A bit nerve wracking not having a trailing NULL character but it 
>> looks correct.
>>
>> http://cr.openjdk.java.net/~hseigel/bug_8058575.hs.3/test/runtime/defineAnonClass/TestBadHostClass.java.html 
>>
>>
>> Should this test be put in the JDK tests, since it's testing the new 
>> restrictions on Unsafe anonymous classes?
>>
>> The tests look great though.
>>
>> Thank you for doing the InstanceKlass cleanup.  Also, to answer 
>> Remi's question, if arrays are changed to have methods, including 
>> default methods, we'd have to change the metadata types for Klass to 
>> represent that and would have to change the code so that access 
>> through the host_klass has meaning.  This code is clean for the JDK9 
>> meaning of host_klass.
>>
>> Thanks,
>> Coleen
>>
>>
>> On 9/2/16 9:02 AM, harold seigel wrote:
>>> Hi,
>>>
>>> Please review this new fix for JDK-8058575.  This fix requires that 
>>> a VM anonymous class be in either the same package as its host class 
>>> or be in the unnamed package.  If the anonymous class is in the 
>>> unnamed package then this fix puts it into its host class's package, 
>>> ensuring that the anonymous class and its host class are in the same 
>>> module.  This fix also throws an IllegalArgumentException if the 
>>> host class is an array class.
>>>
>>> Additionally, the type of field ClassFileParser::_host_klass was 
>>> changed to InstanceKlass* and some comments were cleaned up.
>>>
>>> JBS bug: https://bugs.openjdk.java.net/browse/JDK-8058575
>>>
>>> Open webrevs:
>>>
>>>    http://cr.openjdk.java.net/~hseigel/bug_8058575.jdk.3/
>>>
>>>    http://cr.openjdk.java.net/~hseigel/bug_8058575.hs.3/
>>>
>>> The fix was tested with the JCK API, Lang and VM tests, the hotpot, 
>>> and java/lang, java/util and other JTreg tests, the RBT tier2 tests, 
>>> and the NSK colocated tests and non-colocated quick tests.
>>>
>>> Thanks, Harold
>>
>



More information about the hotspot-runtime-dev mailing list