Hey Mark, its not a exception, i just tracked the method calls :) It's just the warning the i mentioned in the first mail.
I will play a little bit and create a ticket. Maybe it's also related to CODI, as i don't have a bean with @PreDestroy. 2013/4/16 Mark Struberg <[email protected]> > yup thats right, there is something wrong. > But there must be something special in your situation as I've never seen > this in production yet. > > Can you please create a JIRA so we can track it? > Please also add > > * which version of owb > * which servlet container > * some info whats going on in your thread > > > InjectionTargetProducer.preDestroy(InjectionTargetProducer.java:132) > It seems that you have a @PreDestroy method which has a @SessionScoped > bean as injection point. > Can you please reduce your session timeout to 2 minutes and set a > breakpoint to the place where the Exception gets thrown > (WebContextsService.java:793)? And then you should be able to see which > Bean did cause this problem if you go down call stack. > > And now some info about why I hacked the lazy session start: > Initially we started the SessionContext for each and every request. But > that means that we also did this for JSF Resource requests (png, css, etc) > or other requests which simply don't need any session. To reduce the number > of sessions we now only request one if a SessionScoped bean gets requested. > > This was especially hard in our case as we configured 1 node to only serve > all the resources of our app (and all our other nodes only serve 'real' > pages) - which was another nice speed bump ;) > You can look at MyFaces / Jakob Korherrs staticresourcehandler if you have > a performance intense app. > > LieGrue, > strub > > > ------------------------------ > *From:* Thomas Andraschko <[email protected]> > *To:* [email protected]; Mark Struberg <[email protected]> > *Sent:* Tuesday, 16 April 2013, 9:00 > *Subject:* Re: Could NOT lazily initialize session context because of > null RequestContext > > Here is the stacktrace: > > at > org.apache.webbeans.web.context.WebContextsService.lazyStartSessionContext(WebContextsService.java:793) > at > org.apache.webbeans.web.context.WebContextsService.getSessionContext(WebContextsService.java:708) > at > org.apache.webbeans.web.context.WebContextsService.getCurrentContext(WebContextsService.java:248) > at > org.apache.webbeans.context.ContextFactory.getStandardContext(ContextFactory.java:185) > at > org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:307) > at > org.apache.webbeans.portable.creation.AbstractProducer.getCreationalContext(AbstractProducer.java:105) > at > org.apache.webbeans.portable.creation.InjectionTargetProducer.preDestroy(InjectionTargetProducer.java:132) > at > org.apache.webbeans.component.InjectionTargetWrapper.preDestroy(InjectionTargetWrapper.java:98) > at > org.apache.webbeans.component.AbstractOwbBean.destroy(AbstractOwbBean.java:251) > at > org.apache.webbeans.context.AbstractContext.destroyInstance(AbstractContext.java:205) > at > org.apache.webbeans.context.AbstractContext.destroy(AbstractContext.java:227) > at > org.apache.webbeans.web.context.SessionContextManager.destroySessionContextWithSessionId(SessionContextManager.java:84) > at > org.apache.webbeans.web.context.WebContextsService.destroySessionContext(WebContextsService.java:495) > at > org.apache.webbeans.web.context.WebContextsService.endContext(WebContextsService.java:216) > at > org.apache.webbeans.servlet.WebBeansConfigurationListener.sessionDestroyed(WebBeansConfigurationListener.java:197) > at > org.eclipse.jetty.server.session.AbstractSessionManager.removeSession(AbstractSessionManager.java:801) > at > org.eclipse.jetty.server.session.AbstractSession.timeout(AbstractSession.java:340) > at > org.eclipse.jetty.server.session.HashSessionManager.scavenge(HashSessionManager.java:320) > at > org.eclipse.jetty.server.session.HashSessionManager$2.run(HashSessionManager.java:282) > at java.util.TimerThread.mainLoop(Timer.java:555) > at java.util.TimerThread.run(Timer.java:505) > > It happens when the session expires. > Any idea? IMO it should not try to lazy start a session if the session > will be destroyed. > > > 2013/4/12 Thomas Andraschko <[email protected]> > > Hi Mark, > > hmm, weird. I always get them at runtime. 7-8 times today. I only changed > some pages and layout stuff and refreshed the page. > Maybe it's because Jetty's change scanning. > I will try it with Tomcat on Monday. > > > > 2013/4/12 Mark Struberg <[email protected]> > > Hi Thomas, this sometimes happens at container startup if the container > code invokes some SessionScoped event. But the Session is only available in > a request of course. this should be in the code already since a long time > (1.1.2 or so) > > LieGrue, > strub > > > > ------------------------------ > *From:* Thomas Andraschko <[email protected]> > *To:* [email protected] > *Sent:* Friday, April 12, 2013 4:40 PM > *Subject:* Could NOT lazily initialize session context because of null > RequestContext > > Hi, > > i have many times this warning during development: > > WARNING: Could NOT lazily initialize session context because of null > RequestContext > > Why does this occur and how can i avoid it? > I never mentioned this error in my old application which runned perfectly > with 1.1.6 (or 1.1.5, cant remember) > > Regards, > Thomas > > > > > > >
