Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.4.13
-
None
Description
import java.lang.reflect.Modifier class Foo { private class Private {} protected class Protected {} static void test() { assert Modifier.isPrivate(Private.class.getModifiers()) \\ 0 assert Modifier.isProtected(Protected.class.getModifiers()) \\ 1 } } Foo.test()
The test above fails (on both assertions). This appears to be due to the ACC_PRIVATE and ACC_PROTECTED modifiers being removed/replaced for inner classes, as well as from their inner class table entries (see GROOVY-6357). Though those modifiers aren't valid for the classes themselves, they are allowed in the inner classes table (https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.6).