You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2008/03/08 21:04:55 UTC
svn commit: r635066 -
/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
Author: hlship
Date: Sat Mar 8 12:04:53 2008
New Revision: 635066
URL: http://svn.apache.org/viewvc?rev=635066&view=rev
Log:
TAPESTRY-2240: Groovy classes can no longer be used a component classes because of the public metaClass field
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java?rev=635066&r1=635065&r2=635066&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java Sat Mar 8 12:04:53 2008
@@ -257,6 +257,16 @@
if (Modifier.isStatic(modifiers) || Modifier.isPrivate(modifiers)) continue;
+ // Groovy injects a public field named metaClass. We ignore it, and add it as a claimed
+ // field to prevent any of the workers from seeing it.
+
+ if (name.equals("metaClass") && getFieldType(name).equals("groovy.lang.MetaClass"))
+ {
+ claimField(name, "Ignored");
+
+ continue;
+ }
+
names.add(name);
}