RFR (s) 8159470: Error message for ICCE for MethodHandle constant pool not helpful

Coleen Phillimore coleen.phillimore at oracle.com
Mon Jun 20 23:54:34 UTC 2016



On 6/20/16 7:51 PM, David Holmes wrote:
> On 21/06/2016 2:27 AM, Coleen Phillimore wrote:
>>
>>
>> On 6/20/16 12:24 AM, David Holmes wrote:
>>> Hi Coleen,
>>>
>>> Hi Coleen,
>>>
>>> On 18/06/2016 12:58 AM, Coleen Phillimore wrote:
>>>> Summary: Reworded message and added test.
>>>>
>>>> Caused by: java.lang.IncompatibleClassChangeError: Inconsistent 
>>>> constant
>>>> pool data in classfile for class WithConfiguration. Method
>>>> lambda$autoDetect$0()Ljava/lang/String; at index 26 is
>>>> JVM_CONSTANT_MethodRef and should be JVM_CONSTANT_InterfaceMethodRef
>>>>
>>>> Added test because the existing tests didn't cover this code path.
>>>>
>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8159470.01/webrev
>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8159470
>>>
>>> Nit: why did you get rid of the parentheses here:
>>>
>>> !       if ((callee->is_interface() && m_tag.is_method()) ||
>>
>> Fixed. I shouldn't have removed them.
>>>
>>> Otherwise functional change looks fine.
>>>
>>> In the test what is the relationship between BootstrapMethodError and
>>> the expected ICCE?
>>
>> Exceptions are intercepted and wrapped with BootstrapMethodError for
>> invokedynamic. The ICCE happens to be the cause though.
>
> So should the test be checking that the cause is in fact the expected 
> ICCE and not some other unexpected exception?

Yeah, I guess it could have.
Coleen

>
> David
>
>> Thanks for the review.
>> Coleen
>>
>>>
>>> Thanks,
>>> David
>>>
>>>> Ran nightly tests.
>>>>
>>>> Thanks,
>>>> Coleen
>>



More information about the hotspot-runtime-dev mailing list