java.lang.IncompatibleClassChangeError - Groovy issue with JDK 8
Rory O'Donnell Oracle, Dublin Ireland
rory.odonnell at oracle.com
Thu Jan 9 09:47:08 PST 2014
Hi Jochen,
CC'ing the lambda-dev mailing list , best place to discuss.
Rgds, Rory
On 09/01/2014 16:04, Jochen Theodorou wrote:
> Am 27.12.2013 14:13, schrieb Rory O'Donnell Oracle, Dublin Ireland:
>>
>
> Hi Rory
>
> it seems we are suffering a bug for compiled lambda forms in jdk8 for
> at least b116 to b121. The compiled lambda form seems to produce an
> incompatible class change error
>
> We came to it from the bug report
> http://jira.codehaus.org/browse/GROOVY-6449
>
> The issue can be reproduce by using a indy enabled version of Groovy
> and invoking the test case in the comment here:
> http://jira.codehaus.org/browse/GROOVY-6449?focusedCommentId=338313&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-338313
>
> The key point here is that "${new Date()}".toString() fails on
> invocation number 31. This will create a GStringImpl instance and call
> toString on it. GStringImpl extend GString, which defines the toString
> method. GString also implements CharSequence, which (untypically for
> an interface) defines an abstract toString method. No default method,
> just an ordinary interface method.
>
> For reference GStringImpl
> https://github.com/groovy/groovy-core/blob/master/src/main/org/codehaus/groovy/runtime/GStringImpl.java
>
> and GString
> https://github.com/groovy/groovy-core/blob/master/src/main/groovy/lang/GString.java
>
>
> Through debugging and other thigs we found out, that after 30
> invocations the JVM seems to try to invoke CharSequence#toString
> instead of the implementation. since the error is
> "java.lang.IncompatibleClassChangeError: Found interface
> java.lang.CharSequence, but class was expected" we can safely assume
> that it is about runtime generated bytecode. Now I know we don't
> generate code at that point anymore. I also know the lambda form
> compilation threshold is 30. So if it on invocation number 31, I
> conclude a strong hint for a bug in lambda form runtime compilation
>
> What do you suggest on how to proceed?
>
> bye Jochen
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
More information about the lambda-dev
mailing list