Details
-
Bug
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
1.7.0
-
None
-
None
-
any
-
Patch
Description
in ExpandoMetaClassCreationHandle line 49 (else clause in createNormalMetaClass(Class,MetaClassRegistry)), there is a call
super.create(theClass, registry)
which should be replaced by a call
super.createNormalMetaClass(theClass, registry)
since, if createNormalMetaClass is invoked, this call came from super.create. Thus the call to super.create(..) creates infinite recursion.
This occurs for example when executing code like this:
MetaClassCreationHandle handle = new ExpandoMetaClassCreationHandle();
println handle.create(ExpandoMetaClass, GroovySystem.getMetaClassRegistry());