[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-runtime-dev
Subject:    Re: RFR 8154587: Resolution fails for default method named 'clone'
From:       harold seigel <harold.seigel () oracle ! com>
Date:       2017-12-11 18:54:06
Message-ID: cb2bc3f1-b94b-3ac1-4eb6-87a020561c34 () oracle ! com
[Download RAW message or body]

Thanks Lois!

Harold

On 12/11/2017 1:52 PM, Lois Foltan wrote:
> Looks good!   Thanks for all the additional testing.
> Lois
>
> On 12/11/2017 10:34 AM, harold seigel wrote:
>> Hi,
>>
>> Please review this updated webrev for bug JDK-8154587:
>>
>>      http://cr.openjdk.java.net/~hseigel/bug_8154587.2/webrev/
>>
>> The main differences from the previous webrev are:
>>
>> 1. Improved comments and code changes to klassVtable.cpp and
>>      klassVtable.hpp
>> 2. Added an assert to cpCache.cpp
>> 3. Added new tests.   The purpose of many these tests, including the
>>      .../clone/invokevirtual/ tests, is to check for regressions.
>>
>> These changes were regression tested with the tests listed below plus 
>> tonga tests.
>>
>> Thanks, Harold
>>
>> On 12/6/2017 8:49 AM, harold seigel wrote:
>>> Hi Lois,
>>>
>>> Thanks for the review.   I'll add these tests in the next iteration 
>>> of this webrev.
>>>
>>> >> - a test where class C does not define the method "clone", an IAE 
>>> should result, correct?
>>>
>>> Yes, the test throws an IAE.
>>>
>>> Harold
>>>
>>>
>>> On 12/4/2017 2:31 PM, Lois Foltan wrote:
>>>> Hi Harold,
>>>>
>>>> Fix looks good.   I would like to see three more test cases:
>>>>
>>>>        - the same test written for "finalize" since that is also a 
>>>> non-public method of Object.
>>>>        - a test where class C does not define the method "clone", an 
>>>> IAE should result, correct?
>>>>        - a test case where I2 defines a public method of Object
>>>>
>>>> Thanks,
>>>> Lois
>>>>
>>>> On 11/30/2017 11: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/
>>>>>
>>>>> 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
>>>>>
>>>>
>>>
>>
>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic