Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.0.15
-
None
-
None
-
Jetty 5.1.12; Tapestry 5.0.12
Description
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 org.apache.tapestry.internal.structure.BlockImpl@38c8c5. 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);
Attachments
Issue Links
- blocks
-
TAPESTRY-2341 AJAX Zone updating doesn't work correctly in IE
- Closed