Well, I just checked, and per my findings, 1. @schedule only references @applicationscoped bean 2. @applicationscoped bean does 'not' reference any @sessionscoped beans
FYI, @sessionscoped beans reference the @applicationscoped bean, but as mentioned in # 2 above, it is 'not' vice versa. :) An interceptor sounds interesting; never did interceptor yet, will have to research that and try. if you know of a blog for the specific case that we're talking here... interceptor, when @sessionscoped bean is pinged/asked outside of an HTTP request, then please let me know. thanks. :) On Sun, Feb 3, 2013 at 6:03 AM, Romain Manni-Bucau <[email protected]>wrote: > Yep. > > That s easy log when the session scope bean is hitten (an interceptor can > be fine) and check timestamps. > > Im pretty sure thats it > Le 3 févr. 2013 11:58, "Howard W. Smith, Jr." <[email protected]> a > écrit : > > > And I assume your use of the word, 'request' = HTTP request. correct? > > > > > > On Sun, Feb 3, 2013 at 5:56 AM, Howard W. Smith, Jr. < > > [email protected] > > > wrote: > > > > > Wow/hmmm, interesting. I do have @Schedule pinging CDI > @applicationscoped > > > bean's getter methods. Maybe that is the cause, and when @Schedule > > pinging > > > CDI @applicationscoped bean, I may be pinging CDI @sessionscoped (user) > > > bean(s). > > > > > > I will have to check on that. Other than that, I really would not know > > > where else I ping a sessionscoped bean 'outside of' a request. :) > > > > > > > > > On Sun, Feb 3, 2013 at 5:39 AM, Romain Manni-Bucau < > > [email protected]>wrote: > > > > > >> You identied the cause? = where you ask a sessionscoped bean without > > doing > > >> any request > > >> Le 3 févr. 2013 11:03, "Howard W. Smith, Jr." <[email protected] > > > > a > > >> écrit : > > >> > > >> > Romain, I still see the following in my log. I reported this when > > TomEE > > >> > 1.5.1 SNAPSHOT was in development, and I think you recommended the > > same > > >> to > > >> > me that you have already recommended to Jose in this thread. > > Honestly, I > > >> > did not understand how to modify my code to prevent the following > that > > >> > shows up the most in my log. it would be nice... if TomEE provided a > > bit > > >> > more information in this WARNING message or possibly a > recommendation > > >> made > > >> > to the developer, how to prevent this from showing up in the log. As > > you > > >> > can see below, the first message is occurring over and over at the > > same > > >> > time (9:30:37 PM); i did not copy/paste here all of the occurrences > > that > > >> > occurred at 9:30:37 PM. :) > > >> > > > >> > Feb 02, 2013 9:30:37 PM org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 9:30:37 PM org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 9:30:37 PM org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 9:42:29 PM jsf.users.pf_UsersController log > > >> > INFO: pf_UsersController.loginUser(): administrator logged in at Sat > > >> Feb 02 > > >> > 21:42:29 EST 2013 > > >> > Feb 02, 2013 9:58:39 PM org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 9:58:39 PM org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 10:10:16 PM jsf.users.pf_UsersController log > > >> > INFO: pf_UsersController.logout(): administrator logged out at Sat > Feb > > >> 02 > > >> > 22:10:16 EST 2013 > > >> > Feb 02, 2013 11:10:45 PM > org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 11:10:45 PM > org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 11:11:45 PM > org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 11:11:45 PM > org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > Feb 02, 2013 11:20:46 PM > org.apache.openejb.cdi.CdiAppContextsService > > >> > lazyStartSessionContext > > >> > WARNING: Could NOT lazily initialize session context because of null > > >> > RequestContext > > >> > > > >> > > > >> > On Wed, Jan 30, 2013 at 2:43 AM, Romain Manni-Bucau > > >> > <[email protected]>wrote: > > >> > > > >> > > can you give a try with a fresh snapshot please ?(build it from > > >> sources > > >> > or > > >> > > wait next snapshot deployed tonight) > > >> > > > > >> > > *Romain Manni-Bucau* > > >> > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > > >> > > *Blog: **http://rmannibucau.wordpress.com/*< > > >> > > http://rmannibucau.wordpress.com/> > > >> > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > > >> > > *Github: https://github.com/rmannibucau* > > >> > > > > >> > > > > >> > > > > >> > > 2013/1/30 Romain Manni-Bucau <[email protected]> > > >> > > > > >> > > > That's a bug in session scope using session directly: ill fix it > > >> soon > > >> > but > > >> > > > disactivacte it and it will work > > >> > > > Le 30 janv. 2013 06:23, "José Luis Cetina" < > [email protected]> > > a > > >> > > > écrit : > > >> > > > > > >> > > > Hi > > >> > > >> When i deploy 2 or more webapps in the same EAR each of them > have > > >> > > (webapp) > > >> > > >> with their own session bean and use a request.login method. > > >> > > >> > > >> > > >> I get a java.lang.NullPointerException: context parameter can > not > > >> be > > >> > > null > > >> > > >> (this error happens in each web app where i get WARNING - Could > > NOT > > >> > > lazily > > >> > > >> initialize session context because of null RequestContext) i > read > > >> some > > >> > > >> posts about this but in those posts they says is ONLY A > WARNING!! > > >> > > >> > > >> > > >> > > >> > > >> I reproduce this behavior in my github project. > > >> > > >> > > >> > > >> You can download and test the example. > > >> > > >> > > >> > > >> https://github.com/maxtorzito/tomee.git > > >> > > >> > > >> > > >> Setps: > > >> > > >> > > >> > > >> 1. Run with tomee plugin the pom.xml (ear project) > > >> > > >> 2. Add mymailing.com and mymailing2.com to your hosts files > > >> > > >> 3. Try to access to mymailing.com:8080 (you get an WARNING - > > Could > > >> > NOT > > >> > > >> lazily initialize session context because of null > RequestContext > > ) > > >> the > > >> > > >> webapp shows the index.xhtml > > >> > > >> 4. Try to acess to mymailing2.com:8080 (you dont get any > > warning > > >> > like > > >> > > >> webapp1) the webapp show the index.xhtml > > >> > > >> 5. Then click on Login button in webapp1 or webapp2 (the > > >> > > >> order doesn't matter) > > >> > > >> > > >> > > >> Results: When you try to login in webapp2 you can see the > > >> successful > > >> > > >> message, but when you try to login with webapp1 you get this > > >> > exception: > > >> > > >> > > >> > > >> Log: > > >> > > >> > > >> > > >> java.lang.NullPointerException: context parameter can not be > null > > >> > > >> at > > org.apache.webbeans.util.Asserts.assertNotNull(Asserts.java:50) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.webbeans.web.context.SessionContextManager.addNewSessionContext(SessionContextManager.java:58) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.openejb.cdi.UpdatableSessionContextManager.updateSessionIdMapping(UpdatableSessionContextManager.java:50) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.openejb.cdi.CdiAppContextsService.updateSessionIdMapping(CdiAppContextsService.java:516) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.tomee.catalina.TomEEContainerListener.containerEvent(TomEEContainerListener.java:42) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.ContainerBase.fireContainerEvent(ContainerBase.java:1398) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.session.ManagerBase.changeSessionId(ManagerBase.java:776) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.authenticator.AuthenticatorBase.register(AuthenticatorBase.java:715) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.authenticator.AuthenticatorBase.login(AuthenticatorBase.java:801) > > >> > > >> at > org.apache.catalina.connector.Request.login(Request.java:2622) > > >> > > >> at > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1065) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > com.maxtorzito.web1.managedbean.Web1IndexMBean.login(Web1IndexMBean.java:32) > > >> > > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > >> > > >> at java.lang.reflect.Method.invoke(Method.java:601) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:322) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:117) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > com.maxtorzito.web1.managedbean.Web1IndexMBean_$$_javassist_28.login(Web1IndexMBean_$$_javassist_28.java) > > >> > > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > >> > > >> at java.lang.reflect.Method.invoke(Method.java:601) > > >> > > >> at org.apache.el.parser.AstValue.invoke(AstValue.java:278) > > >> > > >> at > > >> > > >> > > >> > > > org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:88) > > >> > > >> at > > >> javax.faces.event.ActionEvent.processListener(ActionEvent.java:51) > > >> > > >> at > > >> > > >> > > >> > > > > >> > > javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:420) > > >> > > >> at > javax.faces.component.UICommand.broadcast(UICommand.java:103) > > >> > > >> at > > >> > javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1028) > > >> > > >> at > > >> > > javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:286) > > >> > > >> at > > javax.faces.component.UIViewRoot._process(UIViewRoot.java:1375) > > >> > > >> at > > >> > > >> > > >> > > > javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170) > > >> > > >> at > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95) > > >> > > >> at > javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > > >> > > >> at > > >> org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > > >> > > >> at > > >> > > >> > > >> > > >> > > >> > > > > >> > > > >> > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > > >> > > >> at java.lang.Thread.run(Thread.java:722) > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> I guess this is for the first WARNING in webapp 1 (WARNING - > > Could > > >> NOT > > >> > > >> lazily initialize session context because of null > RequestContext > > ). > > >> > > >> > > >> > > >> I reproduce this problem in the github project, in my real app > i > > >> have > > >> > 4 > > >> > > >> webapps in the same ear (because they share sources etc..) and > i > > >> have > > >> > > the > > >> > > >> same problem, i can login only in 1 webapp, if i just deploy 1 > > >> webapp > > >> > in > > >> > > >> the ear i could login, but if i N webapps i can only access > > (login) > > >> > to 1 > > >> > > >> of > > >> > > >> them, each webapp unless 1 show the WARNING message, the webapp > > >> where > > >> > > the > > >> > > >> warning message is not present is the webapp where i can login. > > >> > > >> > > >> > > >> What could be? > > >> > > >> > > >> > > > > > >> > > > > >> > > > >> > > > > > > > > >
