-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
None
When using stateful session beans with CDI, the following exception is thrown after approximately 11 minutes of inactivity in a session. I'm not using any specific settings - just defaults. My SFSB class in the stacktrace is org.jboss.weld.examples.pastecode.session.History
13:40:23,427 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/weld-pastecode]] org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
13:51:08,812 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/weld-pastecode]] Session event listener threw exception: javax.ejb.NoSuchEJBException: Could not find Stateful bean: 3j011-vkamuu-g5s27uvi-1-g5s42hod-ac
at org.jboss.ejb3.cache.simple.SimpleStatefulCache.remove(SimpleStatefulCache.java:544)
at org.jboss.ejb3.stateful.StatefulContainer.destroySession(StatefulContainer.java:1452)
at org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl.destroySession(EndpointImpl.java:61)
at org.jboss.weld.integration.ejb.JBossSessionObjectReference.remove(JBossSessionObjectReference.java:62)
at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:108)
at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHandler.java:43)
at org.jboss.weld.examples.pastecode.session.History_$$javassist_54.destroy(History$$_javassist_54.java)
at org.jboss.weld.bean.SessionBean.destroy(SessionBean.java:329)
at org.jboss.weld.context.ForwardingContextual.destroy(ForwardingContextual.java:34)
at org.jboss.weld.context.AbstractMapContext.destroy(AbstractMapContext.java:146)
at org.jboss.weld.context.AbstractMapContext.destroy(AbstractMapContext.java:163)
at org.jboss.weld.context.AbstractThreadLocalMapContext.destroy(AbstractThreadLocalMapContext.java:68)
at org.jboss.weld.context.ContextLifecycle.endSession(ContextLifecycle.java:80)
at org.jboss.weld.servlet.ServletLifecycle.endSession(ServletLifecycle.java:96)
at org.jboss.weld.servlet.WeldListener.sessionDestroyed(WeldListener.java:141)
at org.apache.catalina.session.StandardSession.expire(StandardSession.java:686)
at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:581)
at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:690)
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:675)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1383)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1675)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1684)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1684)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1664)
at java.lang.Thread.run(Thread.java:619)
Steps to reproduce (use a new weld jsf application "Pastecode"):
1) setup your desired session-timeout in war/src/main/webapp/WEB-INF/web.xml file (10 minutes is OK to see the exception)
1) package the app (simply "mvn clean package")
2) deploy the resulting EAR to JBoss AS 6.0.x
3) go to http://localhost:8080/weld-pastecode
4) click the "History" link
5) and wait for 10+ minutes
- is blocked by
-
EJBTHREE-2030 SimpleStatefulCache does not check for passivated session during a remove() call
- Resolved