RFR 8154587: Resolution fails for default method named 'clone'

harold seigel harold.seigel at oracle.com
Mon Dec 4 14:24:05 UTC 2017


Thanks David.

I updated the webrev with that change.

Harold

On 12/3/2017 3:49 AM, David Holmes wrote:
> Hi Harold,
>
> Can't review the details here as not familiar enough with default 
> method rules, but one comment ...
>
> On 1/12/2017 2:15 AM, harold seigel wrote:
>> Hi,
>>
>> Please review this fix for JDK-8154587.  The fix adds additional 
>> special casing to skip over non-public methods in class 
>> java.lang.Object during default method and itable processing for 
>> interfaces.  These methods need to be skipped over because of the 
>> interface method resolution rules in JVM Spec 9, section 5.4.3.4 
>> <https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-5.html#jvms-5.4.3.4>: 
>>
>>
>>     3. Otherwise, if the class|Object|declares a method with the name
>>     and descriptor specified by the interface method reference, which
>>     has its|ACC_PUBLIC|flag set and does not have its|ACC_STATIC|flag
>>     set, method lookup succeeds.
>>
>> Open Webrev: http://cr.openjdk.java.net/~hseigel/bug_8154587/webrev/
>
> ... I think in
>
> static bool is_nonpublic_jlo_method(Method* m)
>
> we can spell "jlo" as "Object" (e.g as with Object_klass and 
> Object_klass_loaded()).
>
> Thanks,
> David
>
>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8154587
>>
>> The fix was tested with JCK lang and VM tests, JTReg hotspot and many 
>> JTReg JDK tests, M5 tier1 - tier5 tests, and JPRT.
>>
>> Thanks, Harold
>>



More information about the hotspot-runtime-dev mailing list