I'm receiving this same type of exception message when attempting to
alter the SetupRender phase result of the component I'm applying my
mixin to. Is this expected behavior? It seems that a lack of the
ability to override the components' or mixins' phases is a limiting
factor for mixins' usefulness.

On 10/10/07, Kristian Marinkovic <[EMAIL PROTECTED]> wrote:
> hi howard,
>
> i receive an exception when i assign two mixins which
> both return a value on the same render phase method
>
> public class FirstMixin {
>     boolean setupRender() {return true;}
> }
> public class SecondMixin {
>     boolean setupRender() {return true;}
> }
>
> @MixinClasses({FirstMixin.class,SecondMixin.class})
> private TextField dealerNo;
>
> is this an invalid use case (using latest from SVN)? could
> this problem be reated to
> https://issues.apache.org/jira/browse/TAPESTRY-1805
>
> funny thing: the stacktrace points to the EventImpl
> class that says :
>
>     @SuppressWarnings("unchecked")
>     public boolean storeResult(Object result)
>     {
>         // Given that this method is *only* invoked from code
>         // that is generated at runtime and proven to be correct,
>         // this should never, ever happen. But what the hell,
>         // let's check anyway.
>
>         if (_aborted)
>             throw new IllegalStateException(ServicesMessages
>                     .componentEventIsAborted(_methodDescription));
>
> :)
>
> g,
> kris
>
>
> Exception:
> #  org.apache.tapestry.ioc.internal.util.TapestryException
> Can not store result from invoking method
> com.poi.cross.adm.licensing.mixins.SecondMixin.setupRender() (at
> SecondMixin.java:5), because an event result value has already been
> obtained from some other event handler method.
>
> location
>     classpath:com/poi/cross/adm/licensing/components/DealerSearch.tml,
> line 3, column 27
>     1   <div xmlns:t=
> "http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
>     2   <div id="search">
>     3   <form t:id="dealerForm">
>     4   <div t:id="errors" />
>     5   <label t:id="dealerNoLabel">Dealer No.</label>
>     6   <input t:id="dealerNo" type="text" maxlength="5" size="10" />
>     7   <a t:id="searchDealer">Search</a>
>     8   <a t:id="newDealer">New</a>
>
> # java.lang.IllegalStateException
> Can not store result from invoking method
> com.poi.cross.adm.licensing.mixins.SecondMixin.setupRender() (at
> SecondMixin.java:5), because an event result value has already been
> obtained from some other event handler method.
>
> Stack trace
>
>         *
> org.apache.tapestry.internal.services.EventImpl.storeResult(EventImpl.java:58)
>         *
> com.poi.cross.adm.licensing.mixins.SecondMixin.setupRender(SecondMixin.java)
>         *
> org.apache.tapestry.internal.structure.ComponentPageElementImpl$12$1.run(ComponentPageElementImpl.java:480)
>         *
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:931)
>         *
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.access$0(ComponentPageElementImpl.java:915)
>         *
> org.apache.tapestry.internal.structure.ComponentPageElementImpl$12.render(ComponentPageElementImpl.java:484)
>         *
> org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:58)
>         *
> org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40)
>         *
> org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:71)
>         *
> org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:81)
>         *
> org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:72)
>         *
> org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:1099)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to