Nested Zone ComponentEventException bug
---------------------------------------
Key: TAPESTRY-2326
URL: https://issues.apache.org/jira/browse/TAPESTRY-2326
Project: Tapestry
Issue Type: Bug
Components: Core Components
Affects Versions: 5.0.12
Environment: Jetty 5.1.12; Tapestry 5.0.12
Reporter: Peter Beshai
Given a template with:
<t:zone t:id="testZone">
<t:delegate to="testBlock" />
</t:zone>
<t:block t:id="testBlock">
<t:zone t:id="zone1">
<t:delegate to="zone1Block"/>
</t:zone>
<t:zone t:id="zone2">
<t:delegate to="zone2Block"/>
</t:zone>
</t:block>
<t:block t:id="zone1Block">
<t:actionlink t:id="showZone2Block2" zone="zone2">show
zone2Block2</t:actionlink><br/>
<t:actionlink t:id="refreshTestZone" zone="testZone">refresh
testZone</t:actionlink>
</t:block>
<t:block t:id="zone2Block">
zone2Block
</t:block>
<t:block t:id="zone2Block2">
<b>zone2Block2</b>
</t:block>
and with code:
@Inject
@Property
private Block _testBlock;
@Inject
@Property
private Block _zone2Block2;
@Inject
@Property
private Block _zone1Block;
@Inject
@Property
private Block _zone2Block;
Object onActionFromShowZone2Block2()
{
return _zone2Block2;
}
Object onActionFromRefreshTestZone()
{
return _testBlock;
}
------
I can click the 'show zone2Block2' as many times as I want (at first), but
after clicking 'refresh testZone' (which will refresh the testZone properly) if
I try clicking either of the actionlinks I get a ComponentEventException that
is expecting a regular action request return type instead of an Ajax one::
org.apache.tapestry.runtime.ComponentEventException
A component event handler method returned the value [EMAIL PROTECTED] Return
type org.apache.tapestry.internal.structure.BlockImpl can not be handled.
Configured return types are java.lang.Class, java.lang.String, java.net.URL,
org.apache.tapestry.Link, org.apache.tapestry.StreamResponse,
org.apache.tapestry.runtime.Component.
Stack trace:
Stack trace
*
org.apache.tapestry.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
*
org.apache.tapestry.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
*
org.apache.tapestry.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:980)
*
org.apache.tapestry.internal.services.EventImpl.storeResult(EventImpl.java:56)
*
net.rim.appdir.pages.test.TestIndex.dispatchComponentEvent(TestIndex.java)
*
org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843)
*
org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004)
*
org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67)
*
org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
*
org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
*
org.apache.tapestry.services.TapestryModule$40.handle(TapestryModule.java:2121)
*
org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135)
*
org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:955)
from buildTimingFilter in AppModule:: return handler.service(request, response);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]