Re: Groovy issue with GraalVM native-image for a large number of consecutive method calls
Jochen Theodorou <[email protected]>
| Newsgroups | gmane.comp.lang.groovy.user |
|---|---|
| Message-ID | <[email protected]> |
I think we have two different issues to deal with here. (1) graal native does not allow us to set the callsite target again. (2) static compiled code relies on dynamic code via ConvertedClosure. If we fix (2) then (1) is no issue for static code. But even for dynamic code we should maybe have some documentation and settings that allows native images to at least some extend. bye Jochen On 25.12.23 11:47, Damir Murat wrote: > Oh, the source is not a problem. It is part of the open-source project - > https://github.com/croz-ltd/klokwrk-project > <https://github.com/croz-ltd/klokwrk-project> > > Previously, I mentioned only one occurrence of the problem, but I have > two actually. I did some refactorings in the > meantime, so one of the stack traces differs from the previous example. > > I can also provide full reproducible if that is helpful. > > ---------- > org.klokwrk.tool.gradle.source.repack.downloader.GradleDownloader > https://github.com/croz-ltd/klokwrk-project/blob/master/modules/other/tool/klokwrk-tool-gradle-source-repack/src/main/groovy/org/klokwrk/tool/gradle/source/repack/downloader/GradleDownloader.groovy <https://github.com/croz-ltd/klokwrk-project/blob/master/modules/other/tool/klokwrk-tool-gradle-source-repack/src/main/groovy/org/klokwrk/tool/gradle/source/repack/downloader/GradleDownloader.groovy> > > reactor.core.Exceptions$ReactiveException: > com.oracle.svm.core.jdk.UnsupportedFeatureError: Unsupported method > java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal(CallSite, > MethodHandle) is reachable > at reactor.core.Exceptions.propagate(Exceptions.java:408) > at > reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:101) > at reactor.core.publisher.Flux.blockLast(Flux.java:2753) > at > org.klokwrk.tool.gradle.source.repack.downloader.GradleDownloader$_download_closure1.doCall(GradleDownloader.groovy:75) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) > at groovy.lang.Closure.call(Closure.java:433) > at groovy.lang.Closure.call(Closure.java:422) > at > org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1616) > at > org.klokwrk.tool.gradle.source.repack.downloader.GradleDownloader.download(GradleDownloader.groovy:72) > at > org.klokwrk.tool.gradle.source.repack.GradleSourceRepackCommand.fetchGradleDistributionZipFile(GradleSourceRepackCommand.groovy:183) > at > org.klokwrk.tool.gradle.source.repack.GradleSourceRepackCommand.run(GradleSourceRepackCommand.groovy:118) > at picocli.CommandLine.executeUserObject(CommandLine.java:2026) > at picocli.CommandLine.access$1500(CommandLine.java:148) > at > picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) > at > picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) > at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) > at picocli.CommandLine.execute(CommandLine.java:2170) > at > io.micronaut.configuration.picocli.PicocliRunner.run(PicocliRunner.java:137) > at > io.micronaut.configuration.picocli.PicocliRunner.run(PicocliRunner.java:114) > at > org.klokwrk.tool.gradle.source.repack.GradleSourceRepackCommand.main(GradleSourceRepackCommand.groovy:64) > Suppressed: java.lang.Exception: #block terminated with an error > at > reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103) > ... 24 more > Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Unsupported > method > java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal(CallSite, > MethodHandle) is reachable > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:92) > at > [email protected]/java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal(MethodHandleNatives.java) > at > [email protected]/java.lang.invoke.CallSite.setTargetNormal(CallSite.java:290) > at > [email protected]/java.lang.invoke.MutableCallSite.setTarget(MutableCallSite.java:155) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:315) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.Util_java_lang_invoke_MethodHandle.invokeInternal(Target_java_lang_invoke_MethodHandle.java:212) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:76) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.MethodHandleIntrinsicImpl.execute(MethodHandleIntrinsicImpl.java:181) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.Util_java_lang_invoke_MethodHandle.invokeInternal(Target_java_lang_invoke_MethodHandle.java:142) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:76) > at > [email protected]/java.lang.invoke.LambdaForm$NamedFunction.invokeWithArguments(LambdaForm.java:96) > at > [email protected]/java.lang.invoke.LambdaForm.interpretName(LambdaForm.java:964) > at > [email protected]/java.lang.invoke.LambdaForm.interpretWithArguments(LambdaForm.java:941) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:82) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:0) > at > [email protected]/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) > at > org.klokwrk.tool.gradle.source.repack.downloader.GradleDownloader$_download_closure1$_closure3.doCall(GradleDownloader.groovy:78) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) > at groovy.lang.Closure.call(Closure.java:433) > at > org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:52) > at > org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:113) > at jdk.proxy1/jdk.proxy1.$Proxy49.apply(Unknown Source) > at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) > at > io.micronaut.http.client.netty.MicronautFlux$AfterNextOperator$1.onNext(MicronautFlux.java:92) > at > reactor.core.publisher.FluxSwitchMapNoPrefetch$SwitchMapInner.onNext(FluxSwitchMapNoPrefetch.java:407) > at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) > at > reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113) > at > io.micronaut.http.client.netty.ReactiveClientReader.channelRead(ReactiveClientReader.java:139) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:202) > at > io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:164) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) > at > io.netty.handler.codec.http2.AbstractHttp2StreamChannel$Http2ChannelUnsafe.doRead0(AbstractHttp2StreamChannel.java:955) > at > io.netty.handler.codec.http2.AbstractHttp2StreamChannel.fireChildRead(AbstractHttp2StreamChannel.java:600) > at > io.netty.handler.codec.http2.Http2MultiplexHandler.channelRead(Http2MultiplexHandler.java:195) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.codec.http2.Http2FrameCodec.onHttp2Frame(Http2FrameCodec.java:712) > at > io.netty.handler.codec.http2.Http2FrameCodec$FrameListener.onDataRead(Http2FrameCodec.java:651) > at > io.netty.handler.codec.http2.Http2FrameListenerDecorator.onDataRead(Http2FrameListenerDecorator.java:36) > at > io.netty.handler.codec.http2.Http2EmptyDataFrameListener.onDataRead(Http2EmptyDataFrameListener.java:49) > at > io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:322) > at > io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:415) > at > io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:250) > at > io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:159) > at > io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:188) > at > io.netty.handler.codec.http2.DecoratingHttp2ConnectionDecoder.decodeFrame(DecoratingHttp2ConnectionDecoder.java:63) > at > io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:393) > at > io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:453) > at > io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) > at > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) > at > io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) > at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) > at > io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) > at > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) > at > io.micronaut.http.client.netty.ResettableReadTimeoutHandler$NextInterceptor.channelRead(ResettableReadTimeoutHandler.java:92) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) > at > io.micronaut.http.client.netty.ResettableReadTimeoutHandler.channelRead(ResettableReadTimeoutHandler.java:64) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at [email protected]/java.lang.Thread.run(Thread.java:833) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:807) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:210) > > ---------- > > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackager > https://github.com/croz-ltd/klokwrk-project/blob/master/modules/other/tool/klokwrk-tool-gradle-source-repack/src/main/groovy/org/klokwrk/tool/gradle/source/repack/repackager/GradleSourceRepackager.groovy <https://github.com/croz-ltd/klokwrk-project/blob/master/modules/other/tool/klokwrk-tool-gradle-source-repack/src/main/groovy/org/klokwrk/tool/gradle/source/repack/repackager/GradleSourceRepackager.groovy> > > Exception in thread "main" > com.oracle.svm.core.jdk.UnsupportedFeatureError: Unsupported method > java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal(CallSite, > MethodHandle) is reachable > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:92) > at > [email protected]/java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal(MethodHandleNatives.java) > at > [email protected]/java.lang.invoke.CallSite.setTargetNormal(CallSite.java:290) > at > [email protected]/java.lang.invoke.MutableCallSite.setTarget(MutableCallSite.java:155) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:315) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.Util_java_lang_invoke_MethodHandle.invokeInternal(Target_java_lang_invoke_MethodHandle.java:212) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:76) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.MethodHandleIntrinsicImpl.execute(MethodHandleIntrinsicImpl.java:181) > at > org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.Util_java_lang_invoke_MethodHandle.invokeInternal(Target_java_lang_invoke_MethodHandle.java:142) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:76) > at > [email protected]/java.lang.invoke.LambdaForm$NamedFunction.invokeWithArguments(LambdaForm.java:96) > at > [email protected]/java.lang.invoke.LambdaForm.interpretName(LambdaForm.java:964) > at > [email protected]/java.lang.invoke.LambdaForm.interpretWithArguments(LambdaForm.java:941) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:82) > at > [email protected]/java.lang.invoke.MethodHandle.invokeBasic(MethodHandle.java:0) > at > [email protected]/java.lang.invoke.Invokers$Holder.linkToCallSite(Invokers$Holder) > at > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackagerInfo.getGradleDistributionSrcDirPath(GradleSourceRepackagerInfo.groovy:61) > at > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackager$_calculateCountOfTargetZipEntries_closure2$_closure5.doCall(GradleSourceRepackager.groovy:68) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) > at groovy.lang.Closure.call(Closure.java:433) > at > org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:52) > at > org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:113) > at jdk.proxy1/jdk.proxy1.$Proxy50.test(Unknown Source) > at > [email protected]/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) > at > [email protected]/java.util.zip.ZipFile$EntrySpliterator.tryAdvance(ZipFile.java:558) > at > [email protected]/java.util.Spliterator.forEachRemaining(Spliterator.java:332) > at > [email protected]/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) > at > [email protected]/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) > at > [email protected]/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) > at > [email protected]/java.util.stream.ReduceOps$5.evaluateSequential(ReduceOps.java:258) > at > [email protected]/java.util.stream.ReduceOps$5.evaluateSequential(ReduceOps.java:248) > at > [email protected]/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at > [email protected]/java.util.stream.ReferencePipeline.count(ReferencePipeline.java:709) > at > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackager$_calculateCountOfTargetZipEntries_closure2.doCall(GradleSourceRepackager.groovy:67) > at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008) > at groovy.lang.Closure.call(Closure.java:433) > at groovy.lang.Closure.call(Closure.java:422) > at > org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1616) > at > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackager.calculateCountOfTargetZipEntries(GradleSourceRepackager.groovy:65) > at > org.klokwrk.tool.gradle.source.repack.repackager.GradleSourceRepackager.repackGradleSource(GradleSourceRepackager.groovy:54) > at > org.klokwrk.tool.gradle.source.repack.GradleSourceRepackCommand.run(GradleSourceRepackCommand.groovy:130) > at picocli.CommandLine.executeUserObject(CommandLine.java:2026) > at picocli.CommandLine.access$1500(CommandLine.java:148) > at > picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) > at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) > at > picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) > at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) > at picocli.CommandLine.execute(CommandLine.java:2170) > at > io.micronaut.configuration.picocli.PicocliRunner.run(PicocliRunner.java:137) > at > io.micronaut.configuration.picocli.PicocliRunner.run(PicocliRunner.java:114) > at > org.klokwrk.tool.gradle.source.repack.GradleSourceRepackCommand.main(GradleSourceRepackCommand.groovy:64)