[ https://issues.apache.org/jira/browse/GROOVY-11551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joseph Athman updated GROOVY-11551: ----------------------------------- Description: Writing a constructor which has a series of `as` statements seems to cause the Groovy compiler to never complete (or at least takes many many hours). *Example which works fine:* {{ class ConstructorTest { List<String> list1 List<String> list2 ConstructorTest(Object[] values) { int i = 0 list1 = values[i++] as List<String> list2 = values[i++] as List<String> } } }} *Example which will never finish compiling* class ConstructorTest { List<String> list1 List<String> list2 List<String> list3 List<String> list4 List<String> list5 List<String> list6 List<String> list7 List<String> list8 List<String> list9 List<String> list10 List<String> list11 List<String> list12 ConstructorTest(Object[] values) { int i = 0 list1 = values[i++] as List<String> list2 = values[i++] as List<String> list3 = values[i++] as List<String> list4 = values[i++] as List<String> list5 = values[i++] as List<String> list6 = values[i++] as List<String> list7 = values[i++] as List<String> list8 = values[i++] as List<String> list9 = values[i++] as List<String> list10 = values[i++] as List<String> list11 = values[i++] as List<String> list12 = values[i++] as List<String> } } It seems like around 8 or 9 of these statements eventually causes the issue. Note that changing the `as` statements to normal cast statements will fix the compiler issue as well. When I've seen this issue, performing a thread dump of the Groovy compiler shows a stack trace like this: "pool-1-thread-7" #25 prio=5 os_prio=31 cpu=8011.58ms elapsed=182.97s tid=0x0000000129084e00 nid=0x9d03 runnable [0x0000000318612000] java.lang.Thread.State: RUNNABLE at groovyjarjarantlr4.v4.runtime.atn.PredictionContext.join(PredictionContext.java:196) at groovyjarjarantlr4.v4.runtime.atn.ATNConfigSet.add(ATNConfigSet.java:257) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1791) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1684) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeTargetState(ParserATNSimulator.java:1137) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeReachSet(ParserATNSimulator.java:1020) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:750) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execDFA(ParserATNSimulator.java:544) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:409) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:357) at org.apache.groovy.parser.antlr4.GroovyParser.generalClassOrInterfaceType(GroovyParser.java:3107) at org.apache.groovy.parser.antlr4.GroovyParser.type(GroovyParser.java:3005) at org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9126) at org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) at org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) at org.apache.groovy.parser.antlr4.GroovyParser.enhancedStatementExpression(GroovyParser.java:8011) at org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9155) at org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) at org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) at org.apache.groovy.parser.antlr4.GroovyParser.statement(GroovyParser.java:6915) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatement(GroovyParser.java:5555) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatements(GroovyParser.java:4866) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatementsOpt(GroovyParser.java:4805) at org.apache.groovy.parser.antlr4.GroovyParser.block(GroovyParser.java:5501) at org.apache.groovy.parser.antlr4.GroovyParser.methodBody(GroovyParser.java:3776) at org.apache.groovy.parser.antlr4.GroovyParser.methodDeclaration(GroovyParser.java:2306) at org.apache.groovy.parser.antlr4.GroovyParser.memberDeclaration(GroovyParser.java:2147) at org.apache.groovy.parser.antlr4.GroovyParser.classBodyDeclaration(GroovyParser.java:2092) at org.apache.groovy.parser.antlr4.GroovyParser.classBody(GroovyParser.java:1857) at org.apache.groovy.parser.antlr4.GroovyParser.classDeclaration(GroovyParser.java:1735) at org.apache.groovy.parser.antlr4.GroovyParser.typeDeclaration(GroovyParser.java:693) at org.apache.groovy.parser.antlr4.GroovyParser.scriptStatement(GroovyParser.java:496) at org.apache.groovy.parser.antlr4.GroovyParser.scriptStatements(GroovyParser.java:410) at org.apache.groovy.parser.antlr4.GroovyParser.compilationUnit(GroovyParser.java:357) at org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:250) at org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:220) at org.apache.groovy.parser.antlr4.AstBuilder.buildAST(AstBuilder.java:269) at org.apache.groovy.parser.antlr4.Antlr4ParserPlugin.buildAST(Antlr4ParserPlugin.java:58) at org.codehaus.groovy.control.SourceUnit.buildAST(SourceUnit.java:257) at org.codehaus.groovy.control.CompilationUnit$$Lambda$341/0x00000008003618d8.accept(Unknown Source) at java.util.Iterator.forEachRemaining(java.base@17.0.8/Iterator.java:133) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(java.base@17.0.8/Spliterators.java:1845) at java.util.stream.ReferencePipeline$Head.forEach(java.base@17.0.8/ReferencePipeline.java:762) at org.codehaus.groovy.control.CompilationUnit.buildASTs(CompilationUnit.java:666) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:632) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:389) at groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:332) at groovy.lang.GroovyClassLoader$$Lambda$315/0x000000080035ad28.provide(Unknown Source) at org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163) at org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:330) at groovy.lang.GroovyClassLoader$parseClass.call(Unknown Source) at com.nvuillam.Request.parseFile(Request.groovy:222) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:362) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at com.nvuillam.Request$_parseFiles_closure3.doCall(Request.groovy:153) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:274) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) at groovy.lang.Closure.call(Closure.java:412) at groovy.lang.Closure.call(Closure.java:428) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2358) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2343) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2384) at org.codehaus.groovy.runtime.dgm$202.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) at com.nvuillam.Request.parseFiles(Request.groovy:152) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at com.nvuillam.Request.process(Request.groovy:120) at com.nvuillam.Request$process.call(Unknown Source) at com.nvuillam.CodeNarcServer$_request_closure5.doCall(CodeNarcServer.groovy:179) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:274) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) at groovy.lang.Closure.call(Closure.java:412) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:50) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:110) at jdk.proxy3.$Proxy11.handle(jdk.proxy3/Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) at sun.net.httpserver.AuthFilter.doFilter(jdk.httpserver@17.0.8/AuthFilter.java:82) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(jdk.httpserver@17.0.8/ServerImpl.java:851) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) at com.nvuillam.LoggingFilter.doFilter(LoggingFilter.groovy:32) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at com.nvuillam.GzipFilter.doFilter(GzipFilter.groovy:17) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at com.nvuillam.TracingFilter.doFilter(TracingFilter.groovy:27) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at sun.net.httpserver.ServerImpl$Exchange.run(jdk.httpserver@17.0.8/ServerImpl.java:818) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.8/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.8/ThreadPoolExecutor.java:635) at java.lang.Thread.run(java.base@17.0.8/Thread.java:833) was: Writing a constructor which has a series of `as` statements seems to cause the Groovy compiler to never complete (or at least takes many many hours). *Example which works fine:* class ConstructorTest { List<String> list1 List<String> list2 ConstructorTest(Object[] values) { int i = 0 list1 = values[i++] as List<String> list2 = values[i++] as List<String> } } *Example which will never finish compiling* class ConstructorTest { List<String> list1 List<String> list2 List<String> list3 List<String> list4 List<String> list5 List<String> list6 List<String> list7 List<String> list8 List<String> list9 List<String> list10 List<String> list11 List<String> list12 ConstructorTest(Object[] values) { int i = 0 list1 = values[i++] as List<String> list2 = values[i++] as List<String> list3 = values[i++] as List<String> list4 = values[i++] as List<String> list5 = values[i++] as List<String> list6 = values[i++] as List<String> list7 = values[i++] as List<String> list8 = values[i++] as List<String> list9 = values[i++] as List<String> list10 = values[i++] as List<String> list11 = values[i++] as List<String> list12 = values[i++] as List<String> } } It seems like around 8 or 9 of these statements eventually causes the issue. Note that changing the `as` statements to normal cast statements will fix the compiler issue as well. When I've seen this issue, performing a thread dump of the Groovy compiler shows a stack trace like this: "pool-1-thread-7" #25 prio=5 os_prio=31 cpu=8011.58ms elapsed=182.97s tid=0x0000000129084e00 nid=0x9d03 runnable [0x0000000318612000] java.lang.Thread.State: RUNNABLE at groovyjarjarantlr4.v4.runtime.atn.PredictionContext.join(PredictionContext.java:196) at groovyjarjarantlr4.v4.runtime.atn.ATNConfigSet.add(ATNConfigSet.java:257) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1791) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1684) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeTargetState(ParserATNSimulator.java:1137) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeReachSet(ParserATNSimulator.java:1020) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:750) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execDFA(ParserATNSimulator.java:544) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:409) at groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:357) at org.apache.groovy.parser.antlr4.GroovyParser.generalClassOrInterfaceType(GroovyParser.java:3107) at org.apache.groovy.parser.antlr4.GroovyParser.type(GroovyParser.java:3005) at org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9126) at org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) at org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) at org.apache.groovy.parser.antlr4.GroovyParser.enhancedStatementExpression(GroovyParser.java:8011) at org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9155) at org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) at org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) at org.apache.groovy.parser.antlr4.GroovyParser.statement(GroovyParser.java:6915) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatement(GroovyParser.java:5555) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatements(GroovyParser.java:4866) at org.apache.groovy.parser.antlr4.GroovyParser.blockStatementsOpt(GroovyParser.java:4805) at org.apache.groovy.parser.antlr4.GroovyParser.block(GroovyParser.java:5501) at org.apache.groovy.parser.antlr4.GroovyParser.methodBody(GroovyParser.java:3776) at org.apache.groovy.parser.antlr4.GroovyParser.methodDeclaration(GroovyParser.java:2306) at org.apache.groovy.parser.antlr4.GroovyParser.memberDeclaration(GroovyParser.java:2147) at org.apache.groovy.parser.antlr4.GroovyParser.classBodyDeclaration(GroovyParser.java:2092) at org.apache.groovy.parser.antlr4.GroovyParser.classBody(GroovyParser.java:1857) at org.apache.groovy.parser.antlr4.GroovyParser.classDeclaration(GroovyParser.java:1735) at org.apache.groovy.parser.antlr4.GroovyParser.typeDeclaration(GroovyParser.java:693) at org.apache.groovy.parser.antlr4.GroovyParser.scriptStatement(GroovyParser.java:496) at org.apache.groovy.parser.antlr4.GroovyParser.scriptStatements(GroovyParser.java:410) at org.apache.groovy.parser.antlr4.GroovyParser.compilationUnit(GroovyParser.java:357) at org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:250) at org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:220) at org.apache.groovy.parser.antlr4.AstBuilder.buildAST(AstBuilder.java:269) at org.apache.groovy.parser.antlr4.Antlr4ParserPlugin.buildAST(Antlr4ParserPlugin.java:58) at org.codehaus.groovy.control.SourceUnit.buildAST(SourceUnit.java:257) at org.codehaus.groovy.control.CompilationUnit$$Lambda$341/0x00000008003618d8.accept(Unknown Source) at java.util.Iterator.forEachRemaining(java.base@17.0.8/Iterator.java:133) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(java.base@17.0.8/Spliterators.java:1845) at java.util.stream.ReferencePipeline$Head.forEach(java.base@17.0.8/ReferencePipeline.java:762) at org.codehaus.groovy.control.CompilationUnit.buildASTs(CompilationUnit.java:666) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:632) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:389) at groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:332) at groovy.lang.GroovyClassLoader$$Lambda$315/0x000000080035ad28.provide(Unknown Source) at org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163) at org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:330) at groovy.lang.GroovyClassLoader$parseClass.call(Unknown Source) at com.nvuillam.Request.parseFile(Request.groovy:222) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:362) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at com.nvuillam.Request$_parseFiles_closure3.doCall(Request.groovy:153) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:274) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) at groovy.lang.Closure.call(Closure.java:412) at groovy.lang.Closure.call(Closure.java:428) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2358) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2343) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2384) at org.codehaus.groovy.runtime.dgm$202.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) at com.nvuillam.Request.parseFiles(Request.groovy:152) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at com.nvuillam.Request.process(Request.groovy:120) at com.nvuillam.Request$process.call(Unknown Source) at com.nvuillam.CodeNarcServer$_request_closure5.doCall(CodeNarcServer.groovy:179) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) 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:274) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) at groovy.lang.Closure.call(Closure.java:412) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:50) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:110) at jdk.proxy3.$Proxy11.handle(jdk.proxy3/Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) at sun.net.httpserver.AuthFilter.doFilter(jdk.httpserver@17.0.8/AuthFilter.java:82) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(jdk.httpserver@17.0.8/ServerImpl.java:851) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) at com.nvuillam.LoggingFilter.doFilter(LoggingFilter.groovy:32) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at com.nvuillam.GzipFilter.doFilter(GzipFilter.groovy:17) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at com.nvuillam.TracingFilter.doFilter(TracingFilter.groovy:27) at com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) at sun.net.httpserver.ServerImpl$Exchange.run(jdk.httpserver@17.0.8/ServerImpl.java:818) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.8/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.8/ThreadPoolExecutor.java:635) at java.lang.Thread.run(java.base@17.0.8/Thread.java:833) > Constructor with Several `as` statements takes exponential time to Compile > -------------------------------------------------------------------------- > > Key: GROOVY-11551 > URL: https://issues.apache.org/jira/browse/GROOVY-11551 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 4.0.24 > Reporter: Joseph Athman > Priority: Major > > Writing a constructor which has a series of `as` statements seems to cause > the Groovy compiler to never complete (or at least takes many many hours). > *Example which works fine:* > {{ > class ConstructorTest { > List<String> list1 > List<String> list2 > ConstructorTest(Object[] values) { > int i = 0 > list1 = values[i++] as List<String> > list2 = values[i++] as List<String> > } > } > }} > *Example which will never finish compiling* > class ConstructorTest { > List<String> list1 > List<String> list2 > List<String> list3 > List<String> list4 > List<String> list5 > List<String> list6 > List<String> list7 > List<String> list8 > List<String> list9 > List<String> list10 > List<String> list11 > List<String> list12 > ConstructorTest(Object[] values) { > int i = 0 > list1 = values[i++] as List<String> > list2 = values[i++] as List<String> > list3 = values[i++] as List<String> > list4 = values[i++] as List<String> > list5 = values[i++] as List<String> > list6 = values[i++] as List<String> > list7 = values[i++] as List<String> > list8 = values[i++] as List<String> > list9 = values[i++] as List<String> > list10 = values[i++] as List<String> > list11 = values[i++] as List<String> > list12 = values[i++] as List<String> > } > } > It seems like around 8 or 9 of these statements eventually causes the issue. > Note that changing the `as` statements to normal cast statements will fix the > compiler issue as well. > When I've seen this issue, performing a thread dump of the Groovy compiler > shows a stack trace like this: > "pool-1-thread-7" #25 prio=5 os_prio=31 cpu=8011.58ms elapsed=182.97s > tid=0x0000000129084e00 nid=0x9d03 runnable [0x0000000318612000] > java.lang.Thread.State: RUNNABLE > at > groovyjarjarantlr4.v4.runtime.atn.PredictionContext.join(PredictionContext.java:196) > at > groovyjarjarantlr4.v4.runtime.atn.ATNConfigSet.add(ATNConfigSet.java:257) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1791) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1718) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1849) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.closure(ParserATNSimulator.java:1684) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeTargetState(ParserATNSimulator.java:1137) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.computeReachSet(ParserATNSimulator.java:1020) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:750) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.execDFA(ParserATNSimulator.java:544) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:409) > at > groovyjarjarantlr4.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:357) > at > org.apache.groovy.parser.antlr4.GroovyParser.generalClassOrInterfaceType(GroovyParser.java:3107) > at > org.apache.groovy.parser.antlr4.GroovyParser.type(GroovyParser.java:3005) > at > org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9126) > at > org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) > at > org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) > at > org.apache.groovy.parser.antlr4.GroovyParser.enhancedStatementExpression(GroovyParser.java:8011) > at > org.apache.groovy.parser.antlr4.GroovyParser.expression(GroovyParser.java:9155) > at > org.apache.groovy.parser.antlr4.GroovyParser.commandExpression(GroovyParser.java:9299) > at > org.apache.groovy.parser.antlr4.GroovyParser.statementExpression(GroovyParser.java:8067) > at > org.apache.groovy.parser.antlr4.GroovyParser.statement(GroovyParser.java:6915) > at > org.apache.groovy.parser.antlr4.GroovyParser.blockStatement(GroovyParser.java:5555) > at > org.apache.groovy.parser.antlr4.GroovyParser.blockStatements(GroovyParser.java:4866) > at > org.apache.groovy.parser.antlr4.GroovyParser.blockStatementsOpt(GroovyParser.java:4805) > at > org.apache.groovy.parser.antlr4.GroovyParser.block(GroovyParser.java:5501) > at > org.apache.groovy.parser.antlr4.GroovyParser.methodBody(GroovyParser.java:3776) > at > org.apache.groovy.parser.antlr4.GroovyParser.methodDeclaration(GroovyParser.java:2306) > at > org.apache.groovy.parser.antlr4.GroovyParser.memberDeclaration(GroovyParser.java:2147) > at > org.apache.groovy.parser.antlr4.GroovyParser.classBodyDeclaration(GroovyParser.java:2092) > at > org.apache.groovy.parser.antlr4.GroovyParser.classBody(GroovyParser.java:1857) > at > org.apache.groovy.parser.antlr4.GroovyParser.classDeclaration(GroovyParser.java:1735) > at > org.apache.groovy.parser.antlr4.GroovyParser.typeDeclaration(GroovyParser.java:693) > at > org.apache.groovy.parser.antlr4.GroovyParser.scriptStatement(GroovyParser.java:496) > at > org.apache.groovy.parser.antlr4.GroovyParser.scriptStatements(GroovyParser.java:410) > at > org.apache.groovy.parser.antlr4.GroovyParser.compilationUnit(GroovyParser.java:357) > at > org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:250) > at > org.apache.groovy.parser.antlr4.AstBuilder.buildCST(AstBuilder.java:220) > at > org.apache.groovy.parser.antlr4.AstBuilder.buildAST(AstBuilder.java:269) > at > org.apache.groovy.parser.antlr4.Antlr4ParserPlugin.buildAST(Antlr4ParserPlugin.java:58) > at > org.codehaus.groovy.control.SourceUnit.buildAST(SourceUnit.java:257) > at > org.codehaus.groovy.control.CompilationUnit$$Lambda$341/0x00000008003618d8.accept(Unknown > Source) > at > java.util.Iterator.forEachRemaining(java.base@17.0.8/Iterator.java:133) > at > java.util.Spliterators$IteratorSpliterator.forEachRemaining(java.base@17.0.8/Spliterators.java:1845) > at > java.util.stream.ReferencePipeline$Head.forEach(java.base@17.0.8/ReferencePipeline.java:762) > at > org.codehaus.groovy.control.CompilationUnit.buildASTs(CompilationUnit.java:666) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:632) > at > groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:389) > at > groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:332) > at > groovy.lang.GroovyClassLoader$$Lambda$315/0x000000080035ad28.provide(Unknown > Source) > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163) > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154) > at > groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:330) > at groovy.lang.GroovyClassLoader$parseClass.call(Unknown Source) > at com.nvuillam.Request.parseFile(Request.groovy:222) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native > Method) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) > at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) > 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:362) > at > org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) > at > com.nvuillam.Request$_parseFiles_closure3.doCall(Request.groovy:153) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native > Method) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) > at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) > 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:274) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) > at groovy.lang.Closure.call(Closure.java:412) > at groovy.lang.Closure.call(Closure.java:428) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2358) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2343) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2384) > at org.codehaus.groovy.runtime.dgm$202.invoke(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) > at com.nvuillam.Request.parseFiles(Request.groovy:152) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native > Method) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) > at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) > at > org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:193) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:61) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) > at com.nvuillam.Request.process(Request.groovy:120) > at com.nvuillam.Request$process.call(Unknown Source) > at > com.nvuillam.CodeNarcServer$_request_closure5.doCall(CodeNarcServer.groovy:179) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@17.0.8/Native > Method) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@17.0.8/NativeMethodAccessorImpl.java:77) > at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.8/DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(java.base@17.0.8/Method.java:568) > 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:274) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035) > at groovy.lang.Closure.call(Closure.java:412) > at > org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:50) > at > org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:110) > at jdk.proxy3.$Proxy11.handle(jdk.proxy3/Unknown Source) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) > at > sun.net.httpserver.AuthFilter.doFilter(jdk.httpserver@17.0.8/AuthFilter.java:82) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) > at > sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(jdk.httpserver@17.0.8/ServerImpl.java:851) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:95) > at com.nvuillam.LoggingFilter.doFilter(LoggingFilter.groovy:32) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) > at com.nvuillam.GzipFilter.doFilter(GzipFilter.groovy:17) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) > at com.nvuillam.TracingFilter.doFilter(TracingFilter.groovy:27) > at > com.sun.net.httpserver.Filter$Chain.doFilter(jdk.httpserver@17.0.8/Filter.java:98) > at > sun.net.httpserver.ServerImpl$Exchange.run(jdk.httpserver@17.0.8/ServerImpl.java:818) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.8/ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.8/ThreadPoolExecutor.java:635) > at java.lang.Thread.run(java.base@17.0.8/Thread.java:833) -- This message was sent by Atlassian Jira (v8.20.10#820010)