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 2011/04/14 00:23:55 UTC
svn commit: r1091956 -
/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
Author: hlship
Date: Wed Apr 13 22:23:55 2011
New Revision: 1091956
URL: http://svn.apache.org/viewvc?rev=1091956&view=rev
Log:
TAP5-853: Correctly wrap primitives returned from method invocations before returning the value from get()
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java?rev=1091956&r1=1091955&r2=1091956&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java Wed Apr 13 22:23:55 2011
@@ -780,8 +780,7 @@ public class PropertyConduitSourceImpl i
{
Class expressionType = buildSubexpression(builder, null, node.getChild(0));
- if (expressionType.isPrimitive())
- builder.boxPrimitive(expressionType.getName());
+ boxIfPrimitive(builder, expressionType);
// Now invoke the delegate invert() method
@@ -931,8 +930,7 @@ public class PropertyConduitSourceImpl i
Class expressionType = buildSubexpression(builder, null, listNode.getChild(i));
- if (expressionType.isPrimitive())
- builder.boxPrimitive(expressionType.getName());
+ boxIfPrimitive(builder, expressionType);
// Add the value to the array, then pop off the returned boolean
builder.invoke(ArrayListMethods.ADD).pop();
@@ -1224,7 +1222,7 @@ public class PropertyConduitSourceImpl i
return;
}
- plasticClass.introduceMethod(GET).changeImplementation(new InstructionBuilderCallback()
+ plasticClass.introduceMethod(GET, new InstructionBuilderCallback()
{
public void doBuild(InstructionBuilder builder)
{
@@ -1232,20 +1230,13 @@ public class PropertyConduitSourceImpl i
Class termType = evaluateTerm(builder, activeType, node, info);
- unboxIfPrimitive(builder, termType);
+ boxIfPrimitive(builder, termType);
builder.returnResult();
}
-
});
}
- private void unboxIfPrimitive(InstructionBuilder builder, Class type)
- {
- if (type.isPrimitive())
- builder.unboxPrimitive(type.getName());
- }
-
/**
* Extends the builder with the code to evaluate a term (which may
*
@@ -1876,6 +1867,12 @@ public class PropertyConduitSourceImpl i
throw new NoSuchMethodException(ServicesMessages.noSuchMethod(activeType, methodName));
}
+
+ public void boxIfPrimitive(InstructionBuilder builder, Class termType)
+ {
+ if (termType.isPrimitive())
+ builder.boxPrimitive(termType.getName());
+ }
}
public PropertyConduitSourceImpl(PropertyAccess access, @ComponentLayer