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]