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/06/24 23:31:47 UTC
svn commit: r671353 - in /tapestry/tapestry5/trunk/tapestry-core/src:
main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java
Author: hlship
Date: Tue Jun 24 14:31:47 2008
New Revision: 671353
URL: http://svn.apache.org/viewvc?rev=671353&view=rev
Log:
TAPESTRY-2478: Non-private fields in Tapestry component classes should fail early, instead get confusing javassist.bytecode.DuplicateMemberException
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java?rev=671353&r1=671352&r2=671353&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java Tue Jun 24 14:31:47 2008
@@ -252,10 +252,16 @@
private void preloadMemberNames()
{
+ verifyFields();
+
addMemberNames(ctClass.getDeclaredFields());
addMemberNames(ctClass.getDeclaredMethods());
}
+ /**
+ * Invoked during instance construction to check that all fields are either: <ul> <li>private</li> <li>static</li>
+ * <li>groovy.lang.MetaClass (for Groovy compatiblility)</li> </li>
+ */
void verifyFields()
{
List<String> names = CollectionFactory.newList();
@@ -264,8 +270,6 @@
{
String name = field.getName();
- if (addedFieldNames.contains(name)) continue;
-
int modifiers = field.getModifiers();
// Fields must be either static or private.
@@ -1042,8 +1046,6 @@
if (skipped.contains(name)) continue;
- // May need to add a filter to edit out explicitly added fields.
-
names.add(name);
}
@@ -1299,8 +1301,6 @@
addConstructor();
- verifyFields();
-
freeze();
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java?rev=671353&r1=671352&r2=671353&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/InternalClassTransformationImplTest.java Tue Jun 24 14:31:47 2008
@@ -916,15 +916,12 @@
{
Logger logger = mockLogger();
-
replay();
- InternalClassTransformation ct = createClassTransformation(VisibilityBean.class, logger);
-
try
{
- ct.finish();
+ InternalClassTransformation ct = createClassTransformation(VisibilityBean.class, logger);
unreachable();
}