[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-02-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16364207#comment-16364207
 ] 

Slawomir Nowak commented on GROOVY-8338:


[~paulk] this kind of blocks the usage of groovy (for example for testing) in 
any jdk9 based project. Are there any plans to fix this issue?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Priority: Major
>
> 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)


[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-27 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16342298#comment-16342298
 ] 

Slawomir Nowak commented on GROOVY-8338:


Do you have any idea when this could be fixed?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Priority: Major
>
> 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)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325571#comment-16325571
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 1:21 PM:
-

[~paulk]
Ok, so this is what I've found so far:
If you define an interface:
{code}
public interface InterfaceWithStaticMethod {

static boolean someStaticMethod() {
return true;
}
}{code}

then this works:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
InterfaceWithStaticMethod.someStaticMethod()
}
}{code}

however this fails:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def result = InterfaceWithStaticMethod.someStaticMethod()
result
}
}{code}
with {code}java.lang.VerifyError: (class: 
example/app/InterfaceWithStaticMethod$someStaticMethod, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9){code}

Running it with @CompileStatic yields:
{code}[INFO] Running com.example.app.StaticMethodCall
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.161 s 
<<< FAILURE! - in com.example.app.StaticMethodCall
[ERROR] static method call test(com.example.app.StaticMethodCall)  Time 
elapsed: 0.068 s  <<< ERROR!
java.lang.IncompatibleClassChangeError: Method 
example.app.InterfaceWithStaticMethod.someStaticMethod()Z must be 
InterfaceMethodref constant
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:11)

[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   StaticMethodCall.static method call test:11 IncompatibleClassChange 
Method exa...
{code}




was (Author: slnowak):
[~paulk]
Ok, so this is what I've found so far:
If you define an interface:
{code}
public interface InterfaceWithStaticMethod {

static boolean someStaticMethod() {
return true;
}
}{code}

then this works:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
InterfaceWithStaticMethod.someStaticMethod()
}
}{code}

however this fails:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def result = InterfaceWithStaticMethod.someStaticMethod()
result
}
}{code}
with {code}java.lang.VerifyError: (class: 
example/app/InterfaceWithStaticMethod$someStaticMethod, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9){code}

Do you want me to put @CompileStatic on top of the test class?



> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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 

[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325571#comment-16325571
 ] 

Slawomir Nowak commented on GROOVY-8338:


[~paulk]
Ok, so this is what I've found so far:
If you define an interface:
{code}
public interface InterfaceWithStaticMethod {

static boolean someStaticMethod() {
return true;
}
}{code}

then this works:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
InterfaceWithStaticMethod.someStaticMethod()
}
}{code}

however this fails:
{code}class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def result = InterfaceWithStaticMethod.someStaticMethod()
result
}
}{code}
with {code}java.lang.VerifyError: (class: 
example/app/InterfaceWithStaticMethod$someStaticMethod, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9){code}

Do you want me to put @CompileStatic on top of the test class?



> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 1:00 PM:
-

I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertx itself as it works on jdk9, it only fails in groovy.

// edit:
I'm trying to recreate the issue without using vertx, will get back to you


was (Author: slnowak):
I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertx itself as it works on jdk9, it only fails in groovy.

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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 

[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 12:49 PM:
--

I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertx itself as it works on jdk9, it only fails in groovy.


was (Author: slnowak):
I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertx itself as it works on jdk9.

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 12:48 PM:
--

I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertx itself as it works on jdk9.


was (Author: slnowak):
I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertex itself as it works on jdk9.

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 12:48 PM:
--

I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

However, there's still something broken. I've added a static Vertx.vertx() call 
{code}
class StaticMethodCall extends Specification {
def 'static method call test'() {
expect:
def vertx = Vertx.vertx()
true
}
}{code}

and it fails with:
{code}
java.lang.VerifyError: (class: io/vertx/core/Vertx$vertx, method: callStatic 
signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal 
type in constant pool

at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getConstructor0(Class.java:3315)
at java.base/java.lang.Class.getConstructor(Class.java:2108)
at com.example.app.StaticMethodCall.static method call 
test(StaticMethodCall.groovy:9)
{code}

it's not caused by vertex itself as it works on jdk9.


was (Author: slnowak):
I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak commented on GROOVY-8338:


I've just built groovy-all jar from latest commit on 2.4.X branch and the 
following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2018-01-14 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325543#comment-16325543
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 1/14/18 12:25 PM:
--

I've just built groovy-all jar from latest commit on 2.4.X branch, included it 
in my test project and the following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1


was (Author: slnowak):
I've just built groovy-all jar from latest commit on 2.4.X branch and the 
following test
{code}class StaticMethodCall extends Specification {

def 'static method call test'() {
expect:
Stream.of(1, 2, 3).map({ it + 1 }).collect(Collectors.toList()) == [2, 
3, 4]
}

}{code}
passed on jdk 9.0.1

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303757#comment-16303757
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 11:06 AM:
---

[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}

Of course, Validation.valid is a static factort method on an interface. So it 
looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)

MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?


was (Author: slnowak):
[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)

MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303757#comment-16303757
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 11:06 AM:
---

[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}

Of course, Validation.valid is a static factory method on an interface. So it 
looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)

MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?


was (Author: slnowak):
[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}

Of course, Validation.valid is a static factort method on an interface. So it 
looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)

MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303757#comment-16303757
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 11:04 AM:
---

[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)

MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?


was (Author: slnowak):
[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)
MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303757#comment-16303757
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 11:04 AM:
---

[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit ad4b5d15e2191349f7ddc588cc208a4014a240d4 (HEAD -> GROOVY_2_5_X, 
upstream/GROOVY_2_5_X)
Author: sunlan 
Date:   Tue Dec 26 12:54:01 2017 +0800

Simplify the arguments of `coerceToSAM` method

(cherry picked from commit 6e5f47f)
MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?


was (Author: slnowak):
[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing anything wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit 7c99799f1b9984c807725a04081e04bca58f6322 (HEAD -> GROOVY_2_5_X, 
origin/GROOVY_2_5_X)
Author: paulk 
Date:   Fri Dec 22 17:11:51 2017 +1000

GROOVY-8386/GROOVY-8094: Final variable analysis broken with 
try/catch/finally and if/then/else (closes #646)
MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?

// edit: Ok, looks like i'm a little bit outdated, let my try again

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303757#comment-16303757
 ] 

Slawomir Nowak commented on GROOVY-8338:


[~blackdrag] Well, I had some compilation issues on 2.5, but after fixing that:
{code}Caused by: java.lang.IncompatibleClassChangeError: Method 
io.vavr.control.Validation.valid(Ljava/lang/Object;)Lio/vavr/control/Validation;
 must be InterfaceMethodref constant{code}
So it looks like the issue is still there. 

Let me know if I'm doing sth wrong:
1) i'm trying to compile groovy locally
{code}MacBook-Pro-Slawomir:groovy snowak$ git log -1
commit 7c99799f1b9984c807725a04081e04bca58f6322 (HEAD -> GROOVY_2_5_X, 
origin/GROOVY_2_5_X)
Author: paulk 
Date:   Fri Dec 22 17:11:51 2017 +1000

GROOVY-8386/GROOVY-8094: Final variable analysis broken with 
try/catch/finally and if/then/else (closes #646)
MacBook-Pro-Slawomir:groovy snowak$ ./gradlew clean dist -x test  
--parallel{code}
2) then I specify compiled jar as a maven depencency:
{code}
org.codehaus.groovy
groovy
2.5.0-SNAPSHOT
system

/Users/snowak/work/projects/groovy/target/libs/groovy-2.5.0-SNAPSHOT.jar

{code}

This should work, right?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303731#comment-16303731
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 10:14 AM:
---

I can try to build 2.5 from sources and test it but I'm not sure if spock is 
compatible with 2.5. 
When I'm trying to build groovy locally, it also can't find asm-all-6.0, i had 
to downgrade the dependency.


was (Author: slnowak):
I can try to build 2.5 from sources and test it but I'm not sure if spock is 
compatible with 2.5. 
When trying to build groovy locally, I also can't find asm-all-6.0, i had to 
downgrade the dependency.

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303731#comment-16303731
 ] 

Slawomir Nowak commented on GROOVY-8338:


I can try to build 2.5 from sources and test it but I'm not sure if spock is 
compatible with 2.5. 
When trying to build groovy locally, I also can't find asm-all-6.0, i had to 
downgrade the dependency.

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303714#comment-16303714
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 10:01 AM:
---

So the latest commit from GROOVY_2_4_X should fix that? In my case, 
unfortunately it haven't. Maybe because I was compiling with asmVersion = 
6.0-BETA?


was (Author: slnowak):
So the latest commit from GROOVY_2_4_X should fix that? In my case, 
unfortunately it didn't. Maybe because I was compiling with asmVersion = 
6.0-BETA?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-26 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303714#comment-16303714
 ] 

Slawomir Nowak commented on GROOVY-8338:


So the latest commit from GROOVY_2_4_X should fix that? In my case, 
unfortunately it didn't. Maybe because I was compiling with asmVersion = 
6.0-BETA?

> Calling Stream.of from groovy class in JDK 9 fails
> --
>
> Key: GROOVY-8338
> URL: https://issues.apache.org/jira/browse/GROOVY-8338
> Project: Groovy
>  Issue Type: Bug
>  Components: groovy-runtime
>Affects Versions: 2.4.12
>Reporter: Marcus Nylander
>Assignee: Jochen Theodorou
> Fix For: 2.4.14
>
>
> 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
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-25 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303419#comment-16303419
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 12:44 AM:
---

[~blackdrag] is this issue solved on GROOVY_2_4_X branch of 
https://github.com/apache/groovy ? I'm trying to run spock tests on jdk9, but 
i'm also having issues with static methods on interfaces. 

I even tried building groovy-all from sources (GROOVY_2_4_X) and use it in my 
project, but then I get {code}method: call signature: 
(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal type in 
constant pool{code}

Same thing happens when I try to run InterfaceStaticMethodCallTest:
{code}java.lang.VerifyError: (class: java_util_stream_Stream$of, method: 
callStatic signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) 
Illegal type in constant pool

at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getConstructor(Class.java:1825)
at 
org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.defineClassAndGetConstructor(ClassLoaderForClassArtifacts.java:82)
at 
org.codehaus.groovy.runtime.callsite.CallSiteGenerator.compileStaticMethod(CallSiteGenerator.java:262)
at 
org.codehaus.groovy.reflection.CachedMethod.createStaticMetaMethodSite(CachedMethod.java:295)
at 
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.createStaticMetaMethodSite(StaticMetaMethodSite.java:114)
at groovy.lang.MetaClassImpl.createStaticSite(MetaClassImpl.java:3421)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:76)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:161)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at TestScript0.run(TestScript0.groovy:4)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:593)
at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:83)
at groovy.util.GroovyTestCase.assertScript(GroovyTestCase.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at 
org.codehaus.groovy.vmplugin.v8.InterfaceStaticMethodCallTest.testStreamOf(InterfaceStaticMethodCallTest.groovy:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at 

[jira] [Comment Edited] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-25 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303419#comment-16303419
 ] 

Slawomir Nowak edited comment on GROOVY-8338 at 12/26/17 12:42 AM:
---

[~blackdrag] is this issue solved on GROOVY_2_4_X branch of 
https://github.com/apache/groovy ? I'm trying to run spock tests on jdk9, but 
i'm also having issues with static methods on interfaces. 

I even tried building groovy-all from sources (GROOVY_2_4_X) and use it in my 
project, but then I get {code}method: call signature: 
(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal type in 
constant pool{code}

Same thing happen when I try to run InterfaceStaticMethodCallTest:
{code}java.lang.VerifyError: (class: java_util_stream_Stream$of, method: 
callStatic signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) 
Illegal type in constant pool

at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getConstructor(Class.java:1825)
at 
org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.defineClassAndGetConstructor(ClassLoaderForClassArtifacts.java:82)
at 
org.codehaus.groovy.runtime.callsite.CallSiteGenerator.compileStaticMethod(CallSiteGenerator.java:262)
at 
org.codehaus.groovy.reflection.CachedMethod.createStaticMetaMethodSite(CachedMethod.java:295)
at 
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.createStaticMetaMethodSite(StaticMetaMethodSite.java:114)
at groovy.lang.MetaClassImpl.createStaticSite(MetaClassImpl.java:3421)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:76)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:161)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at TestScript0.run(TestScript0.groovy:4)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:593)
at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:83)
at groovy.util.GroovyTestCase.assertScript(GroovyTestCase.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at 
org.codehaus.groovy.vmplugin.v8.InterfaceStaticMethodCallTest.testStreamOf(InterfaceStaticMethodCallTest.groovy:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at 

[jira] [Commented] (GROOVY-8338) Calling Stream.of from groovy class in JDK 9 fails

2017-12-25 Thread Slawomir Nowak (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16303419#comment-16303419
 ] 

Slawomir Nowak commented on GROOVY-8338:


[~blackdrag] is this issue solved on GROOVY_2_4_X branch of 
https://github.com/apache/groovy? I'm trying to run spock tests on jdk9, but 
i'm also having issues with static methods on interfaces. 

I even tried building groovy-all from sources (GROOVY_2_4_X) and use it in my 
project, but then I get {code}method: call signature: 
(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;) Illegal type in 
constant pool{code}

Same thing happen when I try to run InterfaceStaticMethodCallTest:
{code}java.lang.VerifyError: (class: java_util_stream_Stream$of, method: 
callStatic signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;) 
Illegal type in constant pool

at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getConstructor(Class.java:1825)
at 
org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.defineClassAndGetConstructor(ClassLoaderForClassArtifacts.java:82)
at 
org.codehaus.groovy.runtime.callsite.CallSiteGenerator.compileStaticMethod(CallSiteGenerator.java:262)
at 
org.codehaus.groovy.reflection.CachedMethod.createStaticMetaMethodSite(CachedMethod.java:295)
at 
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.createStaticMetaMethodSite(StaticMetaMethodSite.java:114)
at groovy.lang.MetaClassImpl.createStaticSite(MetaClassImpl.java:3421)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:76)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:161)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at TestScript0.run(TestScript0.groovy:4)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:593)
at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:83)
at groovy.util.GroovyTestCase.assertScript(GroovyTestCase.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at 
org.codehaus.groovy.vmplugin.v8.InterfaceStaticMethodCallTest.testStreamOf(InterfaceStaticMethodCallTest.groovy:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at