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