[ https://issues.apache.org/jira/browse/GROOVY-8360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shil Sinha reassigned GROOVY-8360: ---------------------------------- Assignee: Shil Sinha > Enums that are nested classes do not have the static modifier set > ----------------------------------------------------------------- > > Key: GROOVY-8360 > URL: https://issues.apache.org/jira/browse/GROOVY-8360 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 3.x, 2.6.0-alpha-1, 2.4.12, 2.5.0-beta-2 > Reporter: Shil Sinha > Assignee: Shil Sinha > Priority: Major > Fix For: 2.5.0-beta-3 > > > In java, enums that are nested classes have the static modifier set i.e. if > Bar is an enum defined within a class Foo, {{assert > Modifier.isStatic(Foo.Bar.modifiers)}} passes. The assertion does not hold if > Foo and Bar are defined in groovy: > {code} > class Foo { > enum Bar { > X > } > } > > assert java.lang.reflect.Modifier.isStatic(Foo.Bar.modifiers) > {code} > This can be problematic in cases like https://mongodb.github.io/morphia/, > where the type of a mapped field cannot be a non-static inner class. Of > course that library could also be more enum-aware when validating mapped > fields, but that's a separate issue. > A simple workaround for this issue is to explicitly declare the enum as > static, so it's not critical that a patch for this be in 2.4.X if it's > considered a breaking change (though no tests fail with the change.) -- This message was sent by Atlassian JIRA (v6.4.14#64029)