Author: hlship
Date: Thu Aug 11 18:23:02 2011
New Revision: 1156714
URL: http://svn.apache.org/viewvc?rev=1156714&view=rev
Log:
TAP5-1535: When there's a type mismatch between a container component at the
field with @InjectComponent, the type of the containing component should be
part of the exception message
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/InjectContainerWorker.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/InjectContainerWorker.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/InjectContainerWorker.java?rev=1156714&r1=1156713&r2=1156714&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/InjectContainerWorker.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/InjectContainerWorker.java
Thu Aug 11 18:23:02 2011
@@ -58,12 +58,11 @@ public class InjectContainerWorker imple
private ComputedValue<FieldConduit<Object>>
createFieldValueConduitProvider(PlasticField field)
{
-
final String fieldName = field.getName();
final String fieldTypeName = field.getTypeName();
- return new ComputedValue<FieldConduit<Object>> ()
+ return new ComputedValue<FieldConduit<Object>>()
{
public FieldConduit<Object> get(InstanceContext context)
{
@@ -79,9 +78,9 @@ public class InjectContainerWorker imple
if (!fieldType.isInstance(container))
{
String message = String.format(
- "Component %s is not assignable to field
%s.%s (of type %s).", container
-
.getComponentResources().getCompleteId(), resources.getComponentModel()
- .getComponentClassName(),
fieldName, fieldTypeName);
+ "Component %s (type %s) is not assignable
to field %s.%s (of type %s).", container
+ .getComponentResources().getCompleteId(),
container.getClass().getName(), resources.getComponentModel()
+ .getComponentClassName(), fieldName,
fieldTypeName);
throw new RuntimeException(message);
}
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java?rev=1156714&r1=1156713&r2=1156714&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java
Thu Aug 11 18:23:02 2011
@@ -140,7 +140,7 @@ public class CoreBehaviorsTests extends
// And exception message:
- assertTextPresent("Component InjectContainerMismatch is not assignable
to field org.apache.tapestry5.corelib.mixins.RenderDisabled.field (of type
org.apache.tapestry5.Field).");
+ assertTextPresent("Component InjectContainerMismatch (type
org.apache.tapestry5.integration.app1.pages.InjectContainerMismatch) is not
assignable to field org.apache.tapestry5.corelib.mixins.RenderDisabled.field
(of type org.apache.tapestry5.Field).");
}
@Test