[
https://issues.apache.org/jira/browse/GROOVY-8930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16723953#comment-16723953
]
Paul King commented on GROOVY-8930:
-----------------------------------
This doesn't fail on 3.0.0-alpha-3, so compiling this file using that version
of Groovy would be your workaround until we fix this.
3.0.0-alpha-3 produces identical bytecode to 2.5.4 (and current 2.5.5-SNAPSHOT)
for the {{doCall}} method and an identical constant pool. The only difference
is that 2.5.x leaves the bytecode level at 51 (JDK7) whereas 3.0.x uses level
52 (JDK8) which is required for the InterfaceMethodref we are currently using
to point to that static interface method.
> JVM verification fails when using static interface method from inside
> CompileStatic groovy
> ------------------------------------------------------------------------------------------
>
> Key: GROOVY-8930
> URL: https://issues.apache.org/jira/browse/GROOVY-8930
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 2.5.4
> Reporter: Artsiom Matronkin
> Priority: Major
> Attachments: Caller.groovy, JavaInterface.class, JavaInterface.java
>
>
> Create and compile java interface containing static method using JDK8
> {code:java}
> public interface JavaInterface
> {
> static int doSmth()
> {
> return 42;
> }
> }
> {code}
> javac JavaInterface.java
>
> Open groovyConsole (2.5.4), add folder where JavaInterface.class is located
> to classpath, check 'Enable indy compilation' and paste following script
>
> {code}
> import groovy.transform.CompileStatic
> import static JavaInterface.doSmth
> @CompileStatic
> void doCall()
> {
> println doSmth()
> }
> {code}
>
>
> Compile and Run the script in groovyConsole. The result is JVM verification
> failure:
> {noformat}
> java.lang.VerifyError: Illegal type at constant pool entry 51 in class Caller
> Exception Details:
> Location:
> Caller.doCall()V @4: invokestatic
> Reason:
> Constant pool index 51 is invalid{noformat}
> Best Regards
> Artsiom
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)