[jboss-jira] [JBoss JIRA] Commented: (JBSEAM-279) Component lifetimes not guaranteed for SFSB backed components.

German de la Cruz (JIRA) jira-events at jboss.com
Mon Aug 21 10:21:44 EDT 2006


    [ http://jira.jboss.com/jira/browse/JBSEAM-279?page=comments#action_12341510 ] 
            
German de la Cruz commented on JBSEAM-279:
------------------------------------------

Same here...

I'm using seam from CVS (nightly build 20060816) myfaces 1.1.4-SNAPSHOT (Last from apache maven snapshot repository) tomahawk 1.1.5-SNAPSHOT, facelets 1.1.11. I've prepared a jboss (V. 4.0.4.GA) with myfaces 1.1.4-SNAPSHOT and EJB3-RC8 

this is my stack. It seems it's always the seams try to destroy my Session scope SFSB. It's not happend at the begginng but after 6 o 7 random iterations, SpecieFinder is a EVENT scope SFSB.


2006-08-21 11:05:35,885 DEBUG [org.jboss.seam.contexts.Contexts] destroying: javax.faces.component.UIForm.org.apache.myfaces.HIDDEN_COMMAND_INPUTS_SET_dataTableForm
2006-08-21 11:05:35,885 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.apache.myfaces.renderkit.html.util.DummyFormUtils.DUMMY_FORM_INFO
2006-08-21 11:05:35,885 DEBUG [org.jboss.seam.contexts.Contexts] destroying: specieFinder
2006-08-21 11:05:35,885 DEBUG [org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager] Attempting to activate; id=3j001-9pn8nr-er4x00bx-1-er4x8zvv-2b
2006-08-21 11:05:35,885 DEBUG [org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager] Reading session state from: /tmp/jboss4/default/tmp/sessions/SpecieFinderBean-er4x18nt-m/3j001-9pn8nr-er4x00bx-1-er4x8zvv-2b.ser
2006-08-21 11:05:35,886 ERROR [STDERR] javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean: 3j001-9pn8nr-er4x00bx-1-er4x8zvv-2b
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:266)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:59)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.invoke(StatefulRemoveInterceptor.java:81)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at $Proxy171.destroy(Unknown Source)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:585)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.seam.contexts.Contexts.callDestroyMethod(Contexts.java:211)
2006-08-21 11:05:35,886 ERROR [STDERR] 	at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:189)
2006-08-21 11:05:35,887 ERROR [STDERR] 	at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:302)
2006-08-21 11:05:35,887 ERROR [STDERR] 	at org.jboss.seam.contexts.Lifecycle.endRequest(Lifecycle.java:233)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:95)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
2006-08-21 11:05:35,889 ERROR [STDERR] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
2006-08-21 11:05:35,890 ERROR [STDERR] 	at java.lang.Thread.run(Thread.java:595)
2006-08-21 11:05:35,890 WARN  [org.jboss.seam.contexts.Contexts] Could not destroy component: specieFinder
javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean: 3j001-9pn8nr-er4x00bx-1-er4x8zvv-2b
	at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:266)
	at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:59)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.invoke(StatefulRemoveInterceptor.java:81)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188)
	at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
	at $Proxy171.destroy(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
	at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32)
	at org.jboss.seam.contexts.Contexts.callDestroyMethod(Contexts.java:211)
	at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:189)
	at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:302)
	at org.jboss.seam.contexts.Lifecycle.endRequest(Lifecycle.java:233)
	at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:95)
	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:595)
2006-08-21 11:05:35,894 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.apache.myfaces.AddResourceFactory.CACHE_MAP_KEY
2006-08-21 11:05:35,894 DEBUG [org.jboss.seam.contexts.Contexts] destroying: javax.faces.component.UIForm.org.apache.myfaces.HIDDEN_COMMAND_INPUTS_SET_searchForm
2006-08-21 11:05:35,897 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.apache.myfaces.component.html.util.ExtensionFilter.doFilterCalled
2006-08-21 11:05:35,897 DEBUG [org.jboss.seam.contexts.Contexts] destroying: facelets.Encoding
2006-08-21 11:05:35,897 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.apache.myfaces.SCROLL_HIDDEN_INPUT_dataTableForm
2006-08-21 11:05:35,897 DEBUG [org.jboss.seam.contexts.Contexts] destroying: com.sun.facelets.legacy.ELCONTEXT
2006-08-21 11:05:35,898 DEBUG [org.jboss.seam.contexts.Lifecycle] flushing server-side conversation context
2006-08-21 11:05:35,898 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End web request
2006-08-21 11:05:35,898 DEBUG [org.jboss.seam.jsf.AbstractSeamPhaseListener] No active conversation context
2006-08-21 11:06:53,710 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000


> Component lifetimes not guaranteed for SFSB backed components.
> --------------------------------------------------------------
>
>                 Key: JBSEAM-279
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-279
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.1
>            Reporter: ryan dewell
>
> Seam does not guarantee component lifecycles for SFSB backed components.  
> The container controls when SFSB's are removed / timed out.  When Seam accesses an SFSB that has been removed by the container, it results in an EJBNoSuchObjectException.
> The JBoss specific workaround for Session scoped components is to use the @CacheConfig annotation, setting the idle timeout to match the HttpSession timeout.  Similar changes would have to be made to any Conversation scoped component that uses a timeout greater than the default SFSB timeout of 5 minutes (which just happens to be the default timeout for Seam conversations).
> There is no workaround for Application scoped components.  Once removed by the container, EJBNoSuchObjectException's will continue to be thrown as Seam tries to access them.
> Seam's context model needs to somehow guarantee that its SFSB instances aren't removed by the container before Seam is finished with them.  And/or, it needs to recover from EJBNoSuchObjectException's more gracefully, especially with regards to Application scoped components for which there is no workaround.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list