[jira] [Resolved] (GROOVY-8470) dead loop when compiling 'enum in enum without semicolon'

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Resolved] (GROOVY-8470) dead loop when compiling 'enum in enum without semicolon'

JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/GROOVY-8470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Sun resolved GROOVY-8470.
--------------------------------
       Resolution: Fixed
         Assignee: Daniel Sun
    Fix Version/s: 3.0.0-alpha-1
                   2.6.0-alpha-1
                   2.6.0-alpha-2
                   2.6.0-alpha-3
                   2.6.0-alpha-4
                   3.0.0-alpha-2

> dead loop when compiling 'enum in enum without semicolon'
> ---------------------------------------------------------
>
>                 Key: GROOVY-8470
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8470
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.4.13
>            Reporter: Xiaoguang Wang
>            Assignee: Daniel Sun
>            Priority: Major
>             Fix For: 3.0.0-alpha-2, 2.6.0-alpha-4, 2.6.0-alpha-3, 2.6.0-alpha-2, 2.6.0-alpha-1, 3.0.0-alpha-1
>
>
> cat a.groovy
> {code:java}
> enum EnumA {
>     EA(EnumB.EB)   // without a semicolon here, the groovyc enters dead loop
>     enum EnumB { EB }
>     private EnumA(EnumB enumB) {
>     }
> }
> {code}
> Run:
> groovyc a.groovy
>  
> It hangs in:
> {code:java}
> "main" #1 prio=5 os_prio=31 tid=0x00007fe32c001800 nid=0x2403 runnable [0x0000700008b92000]
>    java.lang.Thread.State: RUNNABLE
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumConstants(GroovyRecognizer.java:6575)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumBlock(GroovyRecognizer.java:5472)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumDefinition(GroovyRecognizer.java:2127)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.typeDefinitionInternal(GroovyRecognizer.java:1875)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.classField(GroovyRecognizer.java:5961)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumConstants(GroovyRecognizer.java:6443)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumBlock(GroovyRecognizer.java:5472)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumDefinition(GroovyRecognizer.java:2127)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.typeDefinitionInternal(GroovyRecognizer.java:1875)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1307)
>     at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:666)
>     at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:133)
>     at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:110)
>     at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:234)
>     at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:168)
>     at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:943)
>     at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605)
>     at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
>     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
>     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:537)
>     at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:61)
>     at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:217)
>     at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:150)
>     at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:180)
>     at org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:164)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
>     at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)