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 2006/12/02 00:15:28 UTC
svn commit: r481443 - in /tapestry/tapestry5/tapestry-core/trunk/src:
main/java/org/apache/tapestry/internal/services/OnEventWorker.java
test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java
Author: hlship
Date: Fri Dec 1 15:15:26 2006
New Revision: 481443
URL: http://svn.apache.org/viewvc?view=rev&rev=481443
Log:
Fix a bug with the OnEvent annotation where incorrect Javassist code would be generated for non-primitive types (omitting a necessary cast).
Modified:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/OnEventWorker.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/OnEventWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/OnEventWorker.java?view=diff&rev=481443&r1=481442&r2=481443
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/OnEventWorker.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/OnEventWorker.java Fri Dec 1 15:15:26 2006
@@ -152,7 +152,13 @@
// Add a cast to the wrapper type up front
if (isPrimitive)
- builder.add("((%s)", wrapperType);
+ builder.add("(");
+
+ // A cast is always needed (i.e. from java.lang.Object to, say, java.lang.String, etc.).
+ // The wrapper type will be the actual type unless its a primitive, in which case it
+ // really will be the wrapper type.
+
+ builder.add("(%s)", wrapperType);
// The strings for desired type name will likely repeat a bit; it may be
// worth it to inject them as final fields. Could increase the number
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java?view=diff&rev=481443&r1=481442&r2=481443
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java Fri Dec 1 15:15:26 2006
@@ -303,7 +303,7 @@
BOILERPLATE_1,
BOILERPLATE_2,
"$1.setSource(this, \"foo.Bar.foo(java.lang.String)\");",
- "foo($1.coerceContext(0, \"java.lang.String\"));",
+ "foo((java.lang.String)$1.coerceContext(0, \"java.lang.String\"));",
"}");
replay();
@@ -380,8 +380,8 @@
BOILERPLATE_1,
BOILERPLATE_2,
"$1.setSource(this, \"foo.Bar.foo(java.lang.String, java.lang.Integer)\");",
- "foo($1.coerceContext(0, \"java.lang.String\"), ",
- "$1.coerceContext(1, \"java.lang.Integer\"));",
+ "foo((java.lang.String)$1.coerceContext(0, \"java.lang.String\"), ",
+ "(java.lang.Integer)$1.coerceContext(1, \"java.lang.Integer\"));",
"}");
replay();
@@ -422,9 +422,9 @@
BOILERPLATE_1,
BOILERPLATE_2,
format("$1.setSource(this, \"foo.Bar.%s\");", signature.getMediumDescription()),
- "foo($1.coerceContext(0, \"java.lang.String\"), ",
+ "foo((java.lang.String)$1.coerceContext(0, \"java.lang.String\"), ",
"$1.getContext(), ",
- "$1.coerceContext(1, \"java.lang.Integer\"));",
+ "(java.lang.Integer)$1.coerceContext(1, \"java.lang.Integer\"));",
"}");
replay();