[jboss-jira] [JBoss JIRA] Created: (EJBTHREE-1366) Stop SFSB cache after the pool

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Thu May 15 14:55:22 EDT 2008


Stop SFSB cache after the pool
------------------------------

                 Key: EJBTHREE-1366
                 URL: http://jira.jboss.com/jira/browse/EJBTHREE-1366
             Project: EJB 3.0
          Issue Type: Sub-task
          Components: cache
    Affects Versions: AS 5.0.0.Beta4
            Reporter: Brian Stansberry
         Assigned To: Brian Stansberry
             Fix For: AS 5.0.0.CR1


One part of the parent issue is the SFSB cache is stopped before other elements of the container. This leads to undeployment problems like the following:

2008-05-15 13:42:35,711 WARN  [org.jboss.kernel.plugins.dependency.StartStopLifecycleAction] (RMI TCP Connection(6)-127.0.0.1) Error during stop for jboss.j2ee:ear=clusteredsession-nested.jar,jar=clusteredsession-nested.jar,name=testDeepNestedStateful,service=EJB3
java.lang.RuntimeException: exception thrown while removing SFSB
	at org.jboss.ejb3.stateful.StatefulBeanContext.remove(StatefulBeanContext.java:668)
	at org.jboss.ejb3.stateful.ProxiedStatefulBeanContext.remove(ProxiedStatefulBeanContext.java:277)
	at org.jboss.ejb3.pool.AbstractPool.remove(AbstractPool.java:145)
	at org.jboss.ejb3.InfinitePool.destroy(InfinitePool.java:44)
	at org.jboss.ejb3.pool.ThreadlocalPool.destroy(ThreadlocalPool.java:71)
	at org.jboss.ejb3.EJBContainer.stop(EJBContainer.java:877)
	at org.jboss.ejb3.session.SessionContainer.stop(SessionContainer.java:229)
	at org.jboss.ejb3.stateful.StatefulContainer.stop(StatefulContainer.java:262)
	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.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
	at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
	at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:240)
	at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
	at org.jboss.kernel.plugins.dependency.LifecycleAction.uninstallActionInternal(LifecycleAction.java:249)
	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:157)
	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:42)
	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleUninstallAction(SimpleControllerContextAction.java:79)
	at org.jboss.dependency.plugins.action.AccessControllerContextAction.uninstall(AccessControllerContextAction.java:131)
	at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1408)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1066)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:988)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:515)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:471)
	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:99)
	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:46)
	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalUndeploy(AbstractSimpleRealDeployer.java:69)
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1182)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1408)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1066)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:679)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:456)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
	at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:638)
	.....
Caused by: java.lang.NullPointerException
	at org.jboss.ejb3.cache.tree.StatefulTreeCache.remove(StatefulTreeCache.java:241)
	at org.jboss.ejb3.stateful.StatefulBeanContext.removeContains(StatefulBeanContext.java:337)
	at org.jboss.ejb3.stateful.StatefulBeanContext.remove(StatefulBeanContext.java:652)
	... 96 more

Basically, the cache is stopped so it's nulled out some fields, but the the container stops its pool, which calls remove() on beans, thus invoking on the cache.

Note that fixing this doesn't completely fix the parent issue; still need to prevent shutdown of the container while still handling requests and ensure that requests that come in while shutdown is happening get an exception that triggers failover in a clustered proxy.

-- 
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