[ http://issues.apache.org/jira/browse/TAPESTRY-647?page=all ]
Howard M. Lewis Ship closed TAPESTRY-647:
-----------------------------------------
Fix Version: 4.0
Resolution: Fixed
Which just goes to show why using exceptions for this kind of control flow
really is a bad idea! I'll fix it on my next framework, promise!
> RedirectException being caught from listener methods as an application
> exception rather than causing the redirect
> -----------------------------------------------------------------------------------------------------------------
>
> Key: TAPESTRY-647
> URL: http://issues.apache.org/jira/browse/TAPESTRY-647
> Project: Tapestry
> Type: Bug
> Components: Framework
> Versions: 4.0
> Environment: Tomcat 5.0.28, WindowsXP Java1.4.2
> Reporter: Eli Doran
> Assignee: Howard M. Lewis Ship
> Fix For: 4.0
> Attachments: ListenerMethodBinding.patch, TestListenerMethodBinding.patch
>
> up to beta-6 my RedirectException's correctly cause redirects from
> pageValidate and listener methods. Starting with recent source from SVN the
> listener methods throwing a RedirectException fail and the RedirectException
> is displayed in the exception page summary. The redirect location is valid.
> If you copy it from the exception display into the browser's location the
> page will load just fine.
> Below is some of the information provided when I click on my 'Logout' link.
> It calls 'doLogout' listener method which throws a RedirectException to the
> home page.
> Exception invoking listener method doLogout of component member/view:
> org.apache.tapestry.RedirectException
> redirectLocation: /home?page=home&service=page
> # com.elidoran.tapestry.pages.member.MemberPage.doLogout(MemberPage.java:87)
> # sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> #
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> #
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> # java.lang.reflect.Method.invoke(Method.java:324)
> #
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod(ListenerMethodInvokerImpl.java:230)
> #
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:155)
> #
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke(ListenerMethodInvokerImpl.java:124)
> #
> org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:69)
> #
> org.apache.tapestry.listener.SyntheticListener.actionTriggered(SyntheticListener.java:51)
> #
> org.apache.tapestry.binding.ListenerMethodBinding.actionTriggered(ListenerMethodBinding.java:76)
> #
> org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener(ListenerInvokerTerminator.java:51)
> #
> $ListenerInvoker_1065a8b4da8.invokeListener($ListenerInvoker_1065a8b4da8.java)
> #
> $ListenerInvoker_1065a8b4da7.invokeListener($ListenerInvoker_1065a8b4da7.java)
> # org.apache.tapestry.link.DirectLink.trigger(DirectLink.java:105)
> #
> org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:144)
> # org.apache.tapestry.engine.DirectService.service(DirectService.java:130)
> # $IEngineService_1065a8b4e00.service($IEngineService_1065a8b4e00.java)
> #
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:74)
> #
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:65)
> # org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]