You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Daniel Sun (Jira)" <ji...@apache.org> on 2020/10/23 05:44:00 UTC
[jira] [Created] (GROOVY-9790) bootstrap method initialization
exception raised when argument type is wrong
Daniel Sun created GROOVY-9790:
----------------------------------
Summary: bootstrap method initialization exception raised when argument type is wrong
Key: GROOVY-9790
URL: https://issues.apache.org/jira/browse/GROOVY-9790
Project: Groovy
Issue Type: Bug
Components: Static compilation
Affects Versions: 3.0.6
Reporter: Daniel Sun
The following code will raise BME
{code:java}
import java.util.stream.*
@groovy.transform.CompileStatic
def x() {
IntStream.range(0, 2).forEach((Integer i) -> { assert 0 <= i && i < 2})
}
x()
{code}
but the following code works well:
{code:java}
import java.util.stream.*
@groovy.transform.CompileStatic
def x() {
IntStream.range(0, 2).forEach((int i) -> { assert 0 <= i && i < 2})
}
x()
{code}
*BME stacktrace:*
{code:java}
java.lang.BootstrapMethodError: bootstrap method initialization exception
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:194)
at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:315)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:271)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:261)
at ConsoleScript15.x(ConsoleScript15:5)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318)
at ConsoleScript15.run(ConsoleScript15:8)
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:254)
at groovy.lang.GroovyShell.run(GroovyShell.java:360)
at groovy.lang.GroovyShell.run(GroovyShell.java:339)
at groovy.lang.GroovyShell.run(GroovyShell.java:166)
at groovy.lang.GroovyShell$run$0.call(Unknown Source)
at groovy.console.ui.Console$_runScriptImpl_closure22.doCall(Console.groovy:1302)
at groovy.console.ui.Console$_runScriptImpl_closure22.doCall(Console.groovy)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.call(Closure.java:406)
at groovy.lang.Closure.run(Closure.java:493)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for instantiated parameter 0: class java.lang.Integer is not a subtype of int
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.checkDescriptor(AbstractValidatingLambdaMetafactory.java:322)
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:308)
at java.base/java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:327)
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:127)
... 25 more
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)