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

Coleen Phillimore coleen.phillimore at oracle.com
Mon Jun 20 16:27:41 UTC 2016



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.

Thanks for the review.
Coleen

>
> Thanks,
> David
>
>> Ran nightly tests.
>>
>> Thanks,
>> Coleen



More information about the hotspot-runtime-dev mailing list