RFR 8200261: Regression with JVM anonymous class

harold seigel harold.seigel at oracle.com
Wed Apr 4 20:26:51 UTC 2018


Hi Coleen,

Thanks for reviewing this.

The Class ref that it couldn't find is the PUTFIELD at line 136. It 
would also fail at the GETFIELD, but it throws an exception before that.

I'll add a comment that points out the Class ref it couldn't find before 
I push the change.

Thanks, Harold


On 4/4/2018 4:15 PM, coleen.phillimore at oracle.com wrote:
>
> Harold,
>
> This fix looks good to me.  In the test, can you point out which Class 
> ref it couldn't find?
>
>  136         mv.visitFieldInsn(PUTFIELD, proxyClassName, 
> PTR_FIELD_NAME, desc(StructPointer.class));
>
>  146         mv.visitFieldInsn(GETFIELD, proxyClassName, 
> PTR_FIELD_NAME, desc(StructPointer.class));
>
>
> Here?
>
> Thanks,
> Coleen
>
> On 4/4/18 1:29 PM, harold seigel wrote:
>> Hi,
>>
>> Please review this JDK-11 fix for JDK-8200261.  When the JVM default 
>> method processing creates an expanded constant pool, to add overpass 
>> methods, for an anonymous class, it needs to ensure that the 
>> (eagerly) resolved anonymous class get copied into the new constant 
>> pool's klasses array.  Otherwise, the anonymous class will be unable 
>> to find its own fields and methods.  This is only needed for 
>> anonymous classes because other classes get resolved after default 
>> method processing.
>>
>> Open Webrev: 
>> http://cr.openjdk.java.net/~hseigel/bug_8200261/webrev/index.html
>>
>> JBS Bug:  https://bugs.openjdk.java.net/browse/JDK-8200261
>>
>> This fix was tested with Mach5 tiers 1 and 2 tests and builds on all 
>> Mach5 platforms, with tiers 3-5 tests on Linux-x64, with JCK-10 Lang 
>> and VM tests, and with additional JDK JTReg tests.
>>
>> Thanks, Harold
>>
>



More information about the hotspot-runtime-dev mailing list