[ 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)