...that must have been the weirdest bug I ever tracked down (did not
help that it was smack in the middle of a big class inside our largest
module):
https://issues.apache.org/jira/browse/GROOVY-9966
Issue 9966 feels like a fitting number for this one; fortunately error
conditions are so special (feels like a quantum superposition), that it
is really easy to work around, once found... ;-)
Cheers,
mg
-------- Forwarded Message --------
Subject: Re: groovy-3.0.7 & groovy-2.5.14 IntelliJ build => Groovyc:
Internal groovyc error: code 1 ?
Date: Wed, 3 Mar 2021 01:07:00 +0100
From: MG <mg...@arscreat.com>
Reply-To: us...@groovy.apache.org
To: us...@groovy.apache.org, Paul King <pa...@asert.com.au>
Hi Paul,
that did solve the problem, thank you - but it would be nice if an
oversight like that would not lead to a "no information" internal
compiler error for us poor no Maven/Gradle build people :-)
Besides some solvable/trivial ones, I encountered another surprising one
in StaticImportVisitor#getAccessorName (stacktrace below) - maybe coming
from the NV/NVL macro stubs, or static Table class members...
Cheers,
mg
Error:Groovyc: While compiling groovysql:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.base/java.lang.String.substring(String.java:1841)
at org.apache.groovy.util.BeanUtils.capitalize(BeanUtils.java:54)
at
org.codehaus.groovy.control.StaticImportVisitor.getAccessorName(StaticImportVisitor.java:519)
at
org.codehaus.groovy.control.StaticImportVisitor.findStaticPropertyAccessor(StaticImportVisitor.java:528)
at
org.codehaus.groovy.control.StaticImportVisitor.findStaticPropertyAccessorGivenArgs(StaticImportVisitor.java:524)
at
org.codehaus.groovy.control.StaticImportVisitor.findStaticMethodImportFromModule(StaticImportVisitor.java:505)
at
org.codehaus.groovy.control.StaticImportVisitor.transformPropertyExpression(StaticImportVisitor.java:384)
at
org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:130)
at
org.codehaus.groovy.ast.expr.CastExpression.transformExpression(CastExpression.java:95)
at
org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:169)
at
org.codehaus.groovy.ast.expr.DeclarationExpression.transformExpression(DeclarationExpression.java:183)
at
org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:169)
at
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:108)
at
org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
at
org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:164)
at
org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at
org.codehaus.groovy.ast.CodeVisitorSupport.visitTryCatchFinally(CodeVisitorSupport.java:133)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitTryCatchFinally(ClassCodeVisitorSupport.java:242)
at
org.codehaus.groovy.ast.stmt.TryCatchStatement.visit(TryCatchStatement.java:47)
at
org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:164)
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.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:66)
at
org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:108)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:106)
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.control.CompilationUnit.lambda$addPhaseOperations$3(CompilationUnit.java:209)
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.jetbrains.groovy.compiler.rt.GroovyCompilerWrapper.compile(GroovyCompilerWrapper.java:62)
at
org.jetbrains.groovy.compiler.rt.DependentGroovycRunner.runGroovyc(DependentGroovycRunner.java:107)
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.jetbrains.groovy.compiler.rt.GroovycRunner.intMain2(GroovycRunner.java:90)
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.jetbrains.jps.incremental.groovy.InProcessGroovyc.runGroovycInThisProcess(InProcessGroovyc.java:175)
at
org.jetbrains.jps.incremental.groovy.InProcessGroovyc.lambda$runGroovyc$0(InProcessGroovyc.java:94)
at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
On 01/03/2021 23:28, Paul King wrote:
Just a complete guess but does your 3.0.7/2.5.14 global libraries
include the lib/groovy-jaxb jar and not the lib/extras-jaxb/*.jar files?
On Tue, Mar 2, 2021 at 3:41 AM MG <mg...@arscreat.com
<mailto:mg...@arscreat.com>> wrote:
Hi,
I tried to do a spike to switch the (large) IntelliJ build-based*
Groovy project I am working on to from Groovy 2.5.10 to the
current Groovy 3 release (3.0.7) today, but immediately got a
"Groovyc: Internal groovyc error: code 1" that (contrary to
previous times I encountered that error) did not go away through a
rebuild of the current module or the whole project.
The same problem then occurred with the current Groovy 2.5 release
(2.5.14).
I have now created a minimal IntelliJ Groovy project, that
contains a single test that outputs the Groovy version - and to my
surprise this still gives "Groovyc: Internal groovyc error: code
1" in the 'Builder "Groovy stub generator" requested rebuild of
module chunk "GroovyMinimal"' phase...
The minimal project builds & runs without problems when switching
back to Groovy 2.5.10.
My complete build environment is:
IntellliJ 2020.2.3
AdoptOpenJDK jdk-11.0.10.9-hotspot (same behavior when using
11.0.10.5)
Windows 10 Pro 64-bit (build 19041.804)
Groovy 2.5.10 (works) / 2.5.14 (fails) / 3.0.7 (fails) respectively
(Hardware: Intel i5 CPU, 32GB RAM, 2TB SSD)
The project consists only of the (non-global) respective Groovy
library dependency, and the following Groovy test file (for
simplicity I use the JUnit that comes with this particular
IntelliJ version in the minimal project):
package minimal.groovy
import org.junit.Ignore import org.junit.Test class MinimalTest {
@Test @Ignore void test() {
println"Grooovy: ${GroovySystem.version}" }
}
Is this a known problem ? If not, feedback from other Groovy users
would be appreciated. I am evidently trying to find a solution to
this problem, but also to discern the extent of it: E.g. does it
also occur when using Maven or Gradle as a build system (which
would surprise me, since that is what most people use) ? If your
build works fine with Groovy 2.5.14 / 3.0.7, what is your build
environment ?
Thanks, cheers,
mg
*Since the question typically pops up: The environment I work in
does not allow access to build repositories on the internet, and
it is not possible to automatically mirror repositories locally,
and we have no complicated build steps, so using Gradle (or Maven)
would have no real advantage for us, so we use the build system
that is best integrated with our IDE and has good (apart from some
minor hickups) minimal rebuild support, etc, i.e. an IntelliJ build.