tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: Intermittent @ViewScoped Bean Errors
Date Wed, 16 Nov 2016 15:51:21 GMT
2016-11-16 16:48 GMT+01:00 Adam Cornett <adam.cornett@gmail.com>:

> I don't think so.  This error will happen for even the simplest bean: we
> have one 40 line class that just loads a list of JPA objects from the db
> and sorts it for presentation and it triggers the issue too.  So far I have
> seen this happen on at least 8 different view scoped beans across different
> wars in our product.
>
>
Does that mean it is easy to reproduce on a github project? 0:-)


> I've been trying to sort this out for two days now and can't figure out if
> it is caused by a change in our app or if there is something going on in
> OWB/MyFaces/TomEE.  I've disabled tomcat session replication and the issue
> still persists (although sometimes it takes many tries to get the issue to
> manifest).
>
> We have session beans all over our application and those work fine, it is
> just he viewscoped ones that can trigger the issue.  The intermittent
> nature of the problem is also very confusing.  What sort of things could I
> do in our application code that would cause the container to loose the
> request?
>
>
> On Wed, Nov 16, 2016 at 10:35 AM, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> wrote:
>
> > 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 <adam.cornett@gmail.com>:
> >
> > > 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(SessionScopedBeanInterceptorHa
> ndler.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
> > >
> >
>
>
>
> --
> Adam Cornett
> adam.cornett@gmail.com
> (678) 296-1150
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message