Normally the session is captured from the request. Is it possible you loose the request when touching this bean somehow?
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://blog-rmannibucau.rhcloud.com> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-11-16 15:51 GMT+01:00 Adam Cornett <[email protected]>: > Using TomEE 7.0.2 we are seeing intermittent problems with beans > using javax.faces.view.ViewScoped. > We have many pages that use @ViewScoped beans, but the behavior of this > issue is not predictable. Sometimes we can login and not have any issue at > all, sometimes it will only impact a single bean and all other @ViewScoped > beans will work fine, but when a bean starts throwing an error, it will > keep throwing the error until the user logs out (ends the servlet session) > and then when logging back it in may or may not happen again. > > > The primary error is below: > javax.enterprise.context.ContextNotActiveException: WebBeans context with > scope type annotation @SessionScoped does not exist within current thread > at > org.apache.webbeans.container.BeanManagerImpl.getContext( > BeanManagerImpl.java:331) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHan > dler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:89) > at > org.apache.webbeans.intercept.SessionScopedBeanInterceptorHa > ndler.getContextualInstance(SessionScopedBeanInterceptorHandler.java:76) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get( > NormalScopedBeanInterceptorHandler.java:71) > at > org.apache.myfaces.cdi.view.ViewScopeBeanHolder$$OwbNormalScopeProxy0. > generateUniqueViewScopeId(org/apache/myfaces/cdi/view/ > ViewScopeBeanHolder.java) > at > org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.generateViewScopeId( > CDIManagedBeanHandlerImpl.java:92) > at > org.apache.myfaces.view.ViewScopeProxyMap.getWrapped( > ViewScopeProxyMap.java:79) > at org.apache.myfaces.view.ViewScopeProxyMap.size( > ViewScopeProxyMap.java:99) > at javax.faces.component.UIViewRoot.saveState(UIViewRoot.java:1502) > at > org.apache.myfaces.renderkit.ErrorPageWriter._writeComponent( > ErrorPageWriter.java:851) > at > org.apache.myfaces.renderkit.ErrorPageWriter.debugHtml( > ErrorPageWriter.java:352) > at > org.apache.myfaces.renderkit.ErrorPageWriter.handle( > ErrorPageWriter.java:471) > at > org.apache.myfaces.context.MyFacesExceptionHandlerWrapperImpl.handle( > MyFacesExceptionHandlerWrapperImpl.java:301) > at > javax.faces.context.ExceptionHandlerWrapper.handle( > ExceptionHandlerWrapper.java:61) > at > org.apache.webbeans.jsf.OwbExceptionHandler.handle( > OwbExceptionHandler.java:61) > at org.apache.myfaces.lifecycle.LifecycleImpl.render( > LifecycleImpl.java:287) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:200) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:230) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:192) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at > org.apache.catalina.core.ApplicationDispatcher.invoke( > ApplicationDispatcher.java:726) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest( > ApplicationDispatcher.java:469) > at > org.apache.catalina.core.ApplicationDispatcher.doForward( > ApplicationDispatcher.java:394) > at > org.apache.catalina.core.ApplicationDispatcher.forward( > ApplicationDispatcher.java:311) > at > com.achalert.alert.security.servlets.LoginHandlerServlet.processRequest( > LoginHandlerServlet.java:186) > at > com.achalert.alert.security.servlets.LoginHandlerServlet. > doPost(LoginHandlerServlet.java:371) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:230) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:192) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:192) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at > com.achalert.alert.security.filters.SessionValidationFilter.doFilter( > SessionValidationFilter.java:134) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:192) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at > com.achalert.alert.http.OmnibusAchAlertFilter.doFilter( > OmnibusAchAlertFilter.java:161) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:192) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at > org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:108) > at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke( > AuthenticatorBase.java:472) > at > org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:140) > at > org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:79) > at > org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke( > OpenEJBSecurityListener.java:97) > at > org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:87) > at > org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:349) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) > at > org.apache.coyote.AbstractProcessorLight.process( > AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process( > AbstractProtocol.java:802) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. > doRun(NioEndpoint.java:1410) > at > org.apache.tomcat.util.net.SocketProcessorBase.run( > SocketProcessorBase.java:49) > at > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( > TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) > > I've also noticed that there is another error which may be related. This > one is usually somewhere in the logs before the above error happens: > org.apache.webbeans.component.ManagedBean - Exception thrown while > destroying bean instance : [ViewScopeBeanHolder, WebBeansType:MANAGED, > Name:null, API > Types:[org.apache.myfaces.cdi.view.ViewScopeBeanHolder,java. > io.Serializable,java.lang.Object], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > java.lang.NullPointerException: null > at > org.apache.myfaces.cdi.view.ViewScopeContextImpl.destroyAllActive( > ViewScopeContextImpl.java:229) > at > org.apache.myfaces.cdi.view.ViewScopeContextImpl.destroyAllActive( > ViewScopeContextImpl.java:223) > at > org.apache.myfaces.cdi.view.ViewScopeBeanHolder.destroyBeansOnPreDestroy( > ViewScopeBeanHolder.java:221) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > 62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.webbeans.intercept.LifecycleInterceptorInvocation > Context.proceed(LifecycleInterceptorInvocationContext.java:103) > at > org.apache.webbeans.portable.InjectionTargetImpl.preDestroy( > InjectionTargetImpl.java:352) > at > org.apache.webbeans.component.AbstractOwbBean.destroy( > AbstractOwbBean.java:179) > at > org.apache.webbeans.context.AbstractContext.destroyInstance( > AbstractContext.java:206) > at > org.apache.webbeans.context.AbstractContext.destroyInstance( > AbstractContext.java:192) > at > org.apache.webbeans.context.AbstractContext.destroy( > AbstractContext.java:218) > at > org.apache.webbeans.web.context.WebContextsService.destroyRequestContext( > WebContextsService.java:408) > at > org.apache.openejb.cdi.CdiAppContextsService.destroyRequestContext( > CdiAppContextsService.java:113) > at > org.apache.webbeans.web.context.WebContextsService. > endContext(WebContextsService.java:223) > at > org.apache.openejb.server.httpd.BeginWebBeansListener.requestDestroyed( > BeginWebBeansListener.java:99) > at > org.apache.catalina.core.StandardContext.fireRequestDestroyEvent( > StandardContext.java:5965) > at > org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:182) > at > org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:79) > at > org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke( > OpenEJBSecurityListener.java:97) > at > org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:87) > at > org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:349) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) > at > org.apache.coyote.AbstractProcessorLight.process( > AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process( > AbstractProtocol.java:802) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. > doRun(NioEndpoint.java:1410) > at > org.apache.tomcat.util.net.SocketProcessorBase.run( > SocketProcessorBase.java:49) > at > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( > TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) > > > > Adam Cornett >
