]
Pete Muir reassigned JBAS-7759:
-------------------------------
Assignee: Marius Bogoevici
Assign to Marius for coordination.
Weld applications throw javax.ejb.NoSuchEJBException after certain
time of inactivity in a session
--------------------------------------------------------------------------------------------------
Key: JBAS-7759
URL:
https://jira.jboss.org/jira/browse/JBAS-7759
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: EJB3, Web (Tomcat) service, Weld/CDI
Reporter: Martin Gencur
Assignee: Marius Bogoevici
Fix For: JBossAS-6.0.0.M3
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 :)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: