[ 
https://issues.jboss.org/browse/WELD-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581883#comment-12581883
 ] 

Brian Leathem commented on WELD-855:
------------------------------------

If I push an invalid cid, a NonexistentConversationException is thrown as 
expected.  Seam Catch has been configured as a JSF Excpetion Hanlder, to handle 
exceptions.  As it tries to invoke the method that handles this exception, an 
IllegalStateException is thrown while trying to restore the conversation.  

This IllegalStateException should not be thrown.  In this case there is no 
Conversation to restore, which is why the NonexistentConversationException was 
thrown in the first place.

Please le me know if I can add any further explanation as to the expected 
behaviour.

> Error while catching NonexistentConversationException with Seam Faces/Catch
> ---------------------------------------------------------------------------
>
>                 Key: WELD-855
>                 URL: https://issues.jboss.org/browse/WELD-855
>             Project: Weld
>          Issue Type: Bug
>         Environment: Glassfish 3.1 M2 (b41), weld 1.1 patched with Stuart's 
> WELD-846 patch. 
>            Reporter: Brian Leathem
>
> I have a Faces app, with the exception handler:
> void conversationExpired(@Handles 
> CaughtException<NonexistentConversationException> t) {...}
> When I pull up a URL with an invalid cid, I get the stacktrace below.
> (copied from SEAMCATCH-46)
> Stacktrace:
> ---------------
> java.lang.RuntimeException: Exception invoking method [conversationExpired] 
> on object 
> [ca.triumf.mis.qms.workrequest.jsf.exception.ExceptionCatchHandler@264d6a2c], 
> using arguments [org.jboss.seam.exception.control.CaughtException@24758259]
> at 
> org.jboss.seam.solder.reflection.Reflections.invokeMethod(Reflections.java:547)
> at 
> org.jboss.seam.solder.reflection.Reflections.invokeMethod(Reflections.java:458)
> at 
> org.jboss.seam.solder.reflection.annotated.InjectableMethod.invoke(InjectableMethod.java:189)
> at 
> org.jboss.seam.exception.control.HandlerMethodImpl.notify(HandlerMethodImpl.java:189)
> at 
> org.jboss.seam.exception.control.ExceptionHandlerDispatch.executeHandlers(ExceptionHandlerDispatch.java:129)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at 
> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
> at 
> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
> at 
> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
> at 
> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
> at 
> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
> at 
> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
> at 
> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
> at 
> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:270)
> at 
> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
> at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:222)
> at 
> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:632)
> at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:619)
> at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:613)
> at 
> org.jboss.seam.faces.exception.CatchExceptionHandler.handle(CatchExceptionHandler.java:81)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
> at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:113)
> at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
> at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
> at 
> org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:787)
> at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
> at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:483)
> at 
> org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:454)
> at 
> org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:350)
> at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:300)
> at 
> org.apache.catalina.authenticator.FormAuthenticator.forwardToLoginPage(FormAuthenticator.java:465)
> at 
> org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:253)
> at 
> com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1192)
> at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551)
> at 
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:623)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
> at 
> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
> at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
> at 
> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
> at 
> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
> at 
> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
> at 
> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
> at 
> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
> at 
> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
> at 
> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
> at 
> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.IllegalStateException: Unable to load current 
> conversations from the associated request, something went badly wrong when 
> associate() was called
> at 
> org.jboss.weld.context.AbstractConversationContext.getCurrentConversation(AbstractConversationContext.java:413)
> at 
> org.jboss.weld.jsf.ConversationAwareViewHandler.getActionURL(ConversationAwareViewHandler.java:91)
> at 
> com.sun.faces.application.view.MultiViewHandler.getRedirectURL(MultiViewHandler.java:381)
> at 
> javax.faces.application.ViewHandlerWrapper.getRedirectURL(ViewHandlerWrapper.java:204)
> at 
> javax.faces.application.ViewHandlerWrapper.getRedirectURL(ViewHandlerWrapper.java:204)
> at 
> org.jboss.weld.jsf.ConversationAwareViewHandler.getRedirectURL(ConversationAwareViewHandler.java:134)
> at 
> com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:166)
> at 
> org.jboss.seam.faces.event.SeamPreNavigationHandler.handleNavigation(SeamPreNavigationHandler.java:77)
> at 
> ca.triumf.mis.qms.workrequest.jsf.exception.ExceptionCatchHandler.conversationExpired(ExceptionCatchHandler.java:27)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at 
> org.jboss.seam.solder.reflection.Reflections.invokeMethod(Reflections.java:535)
> ... 59 more

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to