Paul King created GROOVY-8494: --------------------------------- Summary: CLONE - Calling Stream.of from groovy class in JDK 9 fails Key: GROOVY-8494 URL: https://issues.apache.org/jira/browse/GROOVY-8494 Project: Groovy Issue Type: Bug Components: groovy-runtime Affects Versions: 2.4.12 Reporter: Marcus Nylander
Trying to call Stream.of from groovy class (groovy version 2.4.12) using JDK 9 (jdk 9 181) fails. Example: {code} package test import java.util.stream.Stream class B { static void main(String[] args) { Stream.of("1").forEach({ println(it) }) } } {code} The code above fails with: Exception in thread "main" java.lang.IncompatibleClassChangeError: Method java.util.stream.Stream.of(Ljava/lang/Object;)Ljava/util/stream/Stream; must be InterfaceMethodref constant at java_util_stream_Stream$of.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at test.B.main(B.groovy:7) The same occurs for other interface static methods also: {code} public interface D { static D of(String s) { return new D() { }; } } class C { static void main(String[] args) { D.of("1") } } {code} Also fails with: Exception in thread "main" java.lang.IncompatibleClassChangeError: Method test.D.of(Ljava/lang/String;)Ltest/D; must be InterfaceMethodref constant at test.D$of.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at test.C.main(C.groovy:7) Running with JDK 8 works fine. -- This message was sent by Atlassian JIRA (v7.6.3#76005)