RFR 8058575: IllegalAccessError trying to access package-private class from VM anonymous class
Karen Kinnear
karen.kinnear at oracle.com
Tue Sep 6 20:44:08 UTC 2016
Harold,
Looks good. Thank you for the fix. Thank you for the cleanups relative to instanceKlass assumptions for now.
thanks,
Karen
> On Sep 6, 2016, at 3:43 PM, harold seigel <harold.seigel at oracle.com> 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