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]

Reply via email to