tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Cornett <adam.corn...@gmail.com>
Subject Re: Intermittent @ViewScoped Bean Errors
Date Wed, 16 Nov 2016 15:48:53 GMT
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.

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(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
> >
>



-- 
Adam Cornett
adam.cornett@gmail.com
(678) 296-1150

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