[
https://issues.apache.org/jira/browse/GROOVY-10910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Garrett resolved GROOVY-10910.
------------------------------------
Fix Version/s: (was: 3.0.8)
(was: 4.0.0-alpha-3)
(was: 2.5.16)
Resolution: Invalid
Created by mistake.
> CLONE - General error during instruction selection: ClassCastException
> ----------------------------------------------------------------------
>
> Key: GROOVY-10910
> URL: https://issues.apache.org/jira/browse/GROOVY-10910
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 3.0.5, 3.0.6, 3.0.7
> Reporter: Jason Garrett
> Assignee: Daniel Sun
> Priority: Major
>
> I am attempting to upgrade a large application from Groovy 2.4.15 to 3.
> Compilation fails with a ClassCastException:
> {code:java}
> General error during instruction selection: class
> org.codehaus.groovy.ast.Parameter cannot be cast to class
> org.codehaus.groovy.ast.expr.VariableExpression
> (org.codehaus.groovy.ast.Parameter and
> org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of
> loader org.gradle.internal.classloader.VisitableURLClassLoader
> @2bf427fc)General error during instruction selection: class
> org.codehaus.groovy.ast.Parameter cannot be cast to class
> org.codehaus.groovy.ast.expr.VariableExpression
> (org.codehaus.groovy.ast.Parameter and
> org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of
> loader org.gradle.internal.classloader.VisitableURLClassLoader @2bf427fc)
> java.lang.ClassCastException: class org.codehaus.groovy.ast.Parameter cannot
> be cast to class org.codehaus.groovy.ast.expr.VariableExpression
> (org.codehaus.groovy.ast.Parameter and
> org.codehaus.groovy.ast.expr.VariableExpression are in unnamed module of
> loader org.gradle.internal.classloader.VisitableURLClassLoader @2bf427fc) at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.makeSingleArgumentCall(StaticTypesCallSiteWriter.java:598)
> at
> org.codehaus.groovy.classgen.asm.InvocationWriter.makeSingleArgumentCall(InvocationWriter.java:616)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateBinaryExpression(BinaryExpressionHelper.java:590)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:242)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:230)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
> at
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58)
> at
> org.codehaus.groovy.classgen.asm.CallSiteWriter.visitBoxedArgument(CallSiteWriter.java:261)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.writeNumberNumberCall(StaticTypesCallSiteWriter.java:782)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.trySubscript(StaticTypesCallSiteWriter.java:616)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter.makeSingleArgumentCall(StaticTypesCallSiteWriter.java:601)
> at
> org.codehaus.groovy.classgen.asm.InvocationWriter.makeSingleArgumentCall(InvocationWriter.java:616)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateBinaryExpression(BinaryExpressionHelper.java:590)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:242)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:214)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
> at
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpression(BinaryExpressionMultiTypeDispatcher.java:236)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:222)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
> at
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58)
> at
> org.codehaus.groovy.classgen.asm.ExpressionAsVariableSlot.visit(ExpressionAsVariableSlot.java:54)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBytecodeExpression(AsmClassGenerator.java:1813)
> at
> org.codehaus.groovy.classgen.BytecodeExpression.visit(BytecodeExpression.java:48)
> at
> org.codehaus.groovy.transform.sc.TemporaryVariableExpression.visit(TemporaryVariableExpression.java:61)
> at
> org.codehaus.groovy.transform.sc.ListOfExpressionsExpression.visit(ListOfExpressionsExpression.java:52)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticPropertyAccessHelper$PoppingListOfExpressionsExpression.visit(StaticPropertyAccessHelper.java:88)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher.makeSetProperty(StaticTypesBinaryExpressionMultiTypeDispatcher.java:322)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher.evaluateEqual(StaticTypesBinaryExpressionMultiTypeDispatcher.java:177)
> at
> org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:150)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:707)
> at
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:58)
> at
> org.codehaus.groovy.classgen.asm.StatementWriter.writeExpressionStatement(StatementWriter.java:635)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitExpressionStatement(AsmClassGenerator.java:686)
> at
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
> at
> org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:94)
> at
> org.codehaus.groovy.classgen.asm.sc.StaticTypesStatementWriter.writeBlockStatement(StaticTypesStatementWriter.java:78)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:617)
> at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
> at
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:138)
> at
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:111)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitStdMethod(AsmClassGenerator.java:461)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:408)
> at
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:106)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:556)
> at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1099) at
> org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1092) at
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:52)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:271)
> at
> org.codehaus.groovy.control.CompilationUnit$3.call(CompilationUnit.java:797)
> at
> org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:942)
> at
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:671)
> at
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:635)
> at
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:610)
> at
> org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:268)
> at
> org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:68)
> at
> org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:87)
> at
> org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:75)
> at
> org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerWorkAction.execute(AbstractDaemonCompiler.java:113)
> at
> org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47)
> at
> org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:46)
> at
> org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:36)
> at
> org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
> at
> org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:36)
> at
> org.gradle.workers.internal.IsolatedClassloaderWorker.execute(IsolatedClassloaderWorker.java:54)
> at
> org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:56)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
> org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:118)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
> at
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
> at
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
> at
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
> at
> org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
> at
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
> at
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 1 error
> {code}
> The output contains no clues as to which class was being processed at the
> time, so I have no idea how to narrow down the cause.
> This affects at least versions 3.0.5-3.0.7; I don't know about earlier
> versions. The application compiles correctly with 2.4.15.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)