[weld-issues] [JBoss JIRA] Commented: (WELD-855) Error while catching NonexistentConversationException with Seam Faces/Catch

Brian Leathem (JIRA) jira-events at lists.jboss.org
Sat Feb 12 10:38:13 EST 2011


    [ 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 at 264d6a2c], using arguments [org.jboss.seam.exception.control.CaughtException at 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


More information about the weld-issues mailing list