Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-22

Better client side reporting of problems with Zones and triggers is needed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.15
    • 5.0.16
    • 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

          Activity

            People

              hlship Howard Lewis Ship
              pbeshai Peter Beshai
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: