You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (JIRA)" <ji...@apache.org> on 2018/03/07 01:17:00 UTC

[jira] [Created] (GROOVY-8494) CLONE - Calling Stream.of from groovy class in JDK 9 fails

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)