You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by zmirc <m_...@yahoo.com> on 2013/07/27 19:32:54 UTC

Re: TomEE: StandardSession expire

I encounter a similar error on 1.6.0 build 27.07. It does not always happen.

I have a filter that redirects everything from /lm/* to /login-lm.xhtml if
@SessionScoped UserSessionB does not have "authenticated" field true (see
isAuthenticated()). This field is primitive (boolean not Boolean) and it's
set when a user is logged in. As I can see, it's something wrong with
@SessionScoped bean. 
This is running in production on 1.5.2 without errors.

Filter code:
@WebFilter(filterName = "Security")
public class SecurityFilter implements Filter {

    private static final Logger LOG =
LoggerFactory.getLogger(SecurityFilter.class);
    @Inject
    UserSessionB usB;

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
	if (!usB.isAuthenticated()) {
	    ((HttpServletResponse) resp).sendRedirect("/login-lm.xhtml");
	    LOG.debug("Access denied: {}", ((HttpServletRequest)
req).getRequestURI().toString());
	} else {
	    try {
		chain.doFilter(req, resp);
	    } catch (IOException | ServletException t) {
		LOG.error(null, t);
	    }
	}
    }

//////////////////////////////////
//////////////////////////////////

Error:
Jul 27, 2013 7:22:13 PM org.apache.openejb.cdi.CdiAppContextsService
lazyStartSessionContext
WARNING: Could NOT lazily initialize session context because of null
RequestContext
Jul 27, 2013 7:22:13 PM org.apache.openejb.server.httpd.EndWebBeansListener
cleanupRequestThreadLocals
SEVERE: WebBeans context with scope type annotation @SessionScoped does not
exist within current thread
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:330)
	at
org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.session(SessionNormalScopeBeanHandler.java:111)
	at
org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.updateBean(SessionNormalScopeBeanHandler.java:92)
	at
org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1$1.run(SessionNormalScopeBeanHandler.java:52)
	at
org.apache.openejb.server.httpd.EndWebBeansListener.cleanupRequestThreadLocals(EndWebBeansListener.java:88)
	at
org.apache.openejb.server.httpd.EndWebBeansListener.requestDestroyed(EndWebBeansListener.java:139)
	at
org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6137)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)



--
View this message in context: http://openejb.979440.n4.nabble.com/TomEE-StandardSession-expire-tp4659384p4664402.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Re: TomEE: StandardSession expire

Posted by "Howard W. Smith, Jr." <sm...@gmail.com>.
Interesting discussion. I may need to download latest TomEE 1.6.0 snapshot
and test to see if I see this behavior, as I am original poster and my code
is very similar to your code, zmirc.

I'm still using TomEE 1.6.0 snapshot 2013-07-19. have not had a need to
upgrade to latest snapshot.


On Mon, Jul 29, 2013 at 5:16 AM, Romain Manni-Bucau
<rm...@gmail.com>wrote:

> Hi
>
> sounds normal since the app is not deployed you can't use session scope
> beans (session handling is probably not yet here)
>
> *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/7/29 zmirc <m_...@yahoo.com>
>
> > Great! That doesn't appear anymore, but with build 29.07 it seems to be a
> > new
> > error.
> >
> > Scenario:
> > 1 - Tomee is closed.
> > 2 - Deploy app and start Tomee.
> > 3 - Before deployment is 100% done (probably around 80% from a time
> > perspective), a request is made to the app (a HTTP url is accessed)
> > 4 - The request doesn't return anything. It's normal, the container
> didn't
> > finish starting.
> > 5 - Container & app are 100% ready.
> > 6 - I remake the same request and I get the following error. The error
> > appears just once. (If I repeat all steps, I can get it again, but it
> > happens just once after Tomee & app are 100% ready)
> >
> > I hope my description helps...
> >
> > Jul 29, 2013 10:06:17 AM org.apache.openejb.cdi.CdiAppContextsService
> > endRequest
> > SEVERE: getAttribute: Session already invalidated
> > java.lang.IllegalStateException: getAttribute: Session already
> invalidated
> >         at
> >
> >
> org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1165)
> >         at
> >
> >
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.updateBean(SessionNormalScopeBeanHandler.java:99)
> >         at
> >
> >
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1$1.run(SessionNormalScopeBeanHandler.java:52)
> >         at
> >
> >
> org.apache.openejb.cdi.CdiAppContextsService.endRequest(CdiAppContextsService.java:109)
> >         at
> >
> >
> org.apache.openejb.cdi.CdiAppContextsService.destroyRequestContext(CdiAppContextsService.java:266)
> >         at
> >
> >
> org.apache.openejb.cdi.CdiAppContextsService.endContext(CdiAppContextsService.java:159)
> >         at
> >
> >
> org.apache.openejb.server.httpd.EndWebBeansListener.requestDestroyed(EndWebBeansListener.java:109)
> >         at
> >
> >
> org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6137)
> >         at
> >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
> >         at
> >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> >         at
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
> >         at
> >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> >         at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> >         at
> >
> >
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
> >         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:1145)
> >         at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >         at java.lang.Thread.run(Thread.java:722)
> >
> >
> >
> > --
> > View this message in context:
> >
> http://openejb.979440.n4.nabble.com/TomEE-StandardSession-expire-tp4659384p4664414.html
> > Sent from the OpenEJB User mailing list archive at Nabble.com.
> >
>

Re: TomEE: StandardSession expire

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi

sounds normal since the app is not deployed you can't use session scope
beans (session handling is probably not yet here)

*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/7/29 zmirc <m_...@yahoo.com>

> Great! That doesn't appear anymore, but with build 29.07 it seems to be a
> new
> error.
>
> Scenario:
> 1 - Tomee is closed.
> 2 - Deploy app and start Tomee.
> 3 - Before deployment is 100% done (probably around 80% from a time
> perspective), a request is made to the app (a HTTP url is accessed)
> 4 - The request doesn't return anything. It's normal, the container didn't
> finish starting.
> 5 - Container & app are 100% ready.
> 6 - I remake the same request and I get the following error. The error
> appears just once. (If I repeat all steps, I can get it again, but it
> happens just once after Tomee & app are 100% ready)
>
> I hope my description helps...
>
> Jul 29, 2013 10:06:17 AM org.apache.openejb.cdi.CdiAppContextsService
> endRequest
> SEVERE: getAttribute: Session already invalidated
> java.lang.IllegalStateException: getAttribute: Session already invalidated
>         at
>
> org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1165)
>         at
>
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.updateBean(SessionNormalScopeBeanHandler.java:99)
>         at
>
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1$1.run(SessionNormalScopeBeanHandler.java:52)
>         at
>
> org.apache.openejb.cdi.CdiAppContextsService.endRequest(CdiAppContextsService.java:109)
>         at
>
> org.apache.openejb.cdi.CdiAppContextsService.destroyRequestContext(CdiAppContextsService.java:266)
>         at
>
> org.apache.openejb.cdi.CdiAppContextsService.endContext(CdiAppContextsService.java:159)
>         at
>
> org.apache.openejb.server.httpd.EndWebBeansListener.requestDestroyed(EndWebBeansListener.java:109)
>         at
>
> org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6137)
>         at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
>         at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>         at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>         at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
>         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:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/TomEE-StandardSession-expire-tp4659384p4664414.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>

Re: TomEE: StandardSession expire

Posted by zmirc <m_...@yahoo.com>.
Great! That doesn't appear anymore, but with build 29.07 it seems to be a new
error.

Scenario:
1 - Tomee is closed.
2 - Deploy app and start Tomee.
3 - Before deployment is 100% done (probably around 80% from a time
perspective), a request is made to the app (a HTTP url is accessed)
4 - The request doesn't return anything. It's normal, the container didn't
finish starting.
5 - Container & app are 100% ready.
6 - I remake the same request and I get the following error. The error
appears just once. (If I repeat all steps, I can get it again, but it
happens just once after Tomee & app are 100% ready) 

I hope my description helps...

Jul 29, 2013 10:06:17 AM org.apache.openejb.cdi.CdiAppContextsService
endRequest
SEVERE: getAttribute: Session already invalidated
java.lang.IllegalStateException: getAttribute: Session already invalidated
	at
org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1165)
	at
org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.updateBean(SessionNormalScopeBeanHandler.java:99)
	at
org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1$1.run(SessionNormalScopeBeanHandler.java:52)
	at
org.apache.openejb.cdi.CdiAppContextsService.endRequest(CdiAppContextsService.java:109)
	at
org.apache.openejb.cdi.CdiAppContextsService.destroyRequestContext(CdiAppContextsService.java:266)
	at
org.apache.openejb.cdi.CdiAppContextsService.endContext(CdiAppContextsService.java:159)
	at
org.apache.openejb.server.httpd.EndWebBeansListener.requestDestroyed(EndWebBeansListener.java:109)
	at
org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6137)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
	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:1145)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)



--
View this message in context: http://openejb.979440.n4.nabble.com/TomEE-StandardSession-expire-tp4659384p4664414.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Re: TomEE: StandardSession expire

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi

should be fixed in tomorrow snapshot

*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/7/27 zmirc <m_...@yahoo.com>

> I encounter a similar error on 1.6.0 build 27.07. It does not always
> happen.
>
> I have a filter that redirects everything from /lm/* to /login-lm.xhtml if
> @SessionScoped UserSessionB does not have "authenticated" field true (see
> isAuthenticated()). This field is primitive (boolean not Boolean) and it's
> set when a user is logged in. As I can see, it's something wrong with
> @SessionScoped bean.
> This is running in production on 1.5.2 without errors.
>
> Filter code:
> @WebFilter(filterName = "Security")
> public class SecurityFilter implements Filter {
>
>     private static final Logger LOG =
> LoggerFactory.getLogger(SecurityFilter.class);
>     @Inject
>     UserSessionB usB;
>
>     @Override
>     public void doFilter(ServletRequest req, ServletResponse resp,
> FilterChain chain) throws IOException, ServletException {
>         if (!usB.isAuthenticated()) {
>             ((HttpServletResponse) resp).sendRedirect("/login-lm.xhtml");
>             LOG.debug("Access denied: {}", ((HttpServletRequest)
> req).getRequestURI().toString());
>         } else {
>             try {
>                 chain.doFilter(req, resp);
>             } catch (IOException | ServletException t) {
>                 LOG.error(null, t);
>             }
>         }
>     }
>
> //////////////////////////////////
> //////////////////////////////////
>
> Error:
> Jul 27, 2013 7:22:13 PM org.apache.openejb.cdi.CdiAppContextsService
> lazyStartSessionContext
> WARNING: Could NOT lazily initialize session context because of null
> RequestContext
> Jul 27, 2013 7:22:13 PM org.apache.openejb.server.httpd.EndWebBeansListener
> cleanupRequestThreadLocals
> SEVERE: WebBeans context with scope type annotation @SessionScoped does not
> exist within current thread
> 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:330)
>         at
>
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.session(SessionNormalScopeBeanHandler.java:111)
>         at
>
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$UpdateInfo.updateBean(SessionNormalScopeBeanHandler.java:92)
>         at
>
> org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1$1.run(SessionNormalScopeBeanHandler.java:52)
>         at
>
> org.apache.openejb.server.httpd.EndWebBeansListener.cleanupRequestThreadLocals(EndWebBeansListener.java:88)
>         at
>
> org.apache.openejb.server.httpd.EndWebBeansListener.requestDestroyed(EndWebBeansListener.java:139)
>         at
>
> org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6137)
>         at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
>         at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>         at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>         at
>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
>         at
>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>         at
>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/TomEE-StandardSession-expire-tp4659384p4664402.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>