[
https://issues.jboss.org/browse/WELD-855?page=com.atlassian.jira.plugin.s...
]
Ove Ranheim commented on WELD-855:
----------------------------------
I experience the same too and thanks for the workaround/hack in conjunction with Seam
Catch it "solves" the problem, after the call to
conversationContext.active(null) and event.handled().
In my app I get the NonexistentConversationException when:
1) SearchForm with a commandButton (excepted behavior is to have a non conversation scope
when clicked)
2) RegisterForm part of a long-running conversation
3) If RegisterForm is not completed and the conversation ended, said user click on the
search-button in SearchForm; the NonexistentConversationException is being thrown.
With the hack described above, the cid from RegisterForm is still appended to the URL
within the action to Search. But, it does work.
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