[jboss-jira] [JBoss JIRA] Created: (JBAS-5332) Container artifacts should have symmetric lifecycles

Adrian Brock (JIRA) jira-events at lists.jboss.org
Thu Mar 20 08:34:00 EDT 2008


Container artifacts should have symmetric lifecycles
----------------------------------------------------

                 Key: JBAS-5332
                 URL: http://jira.jboss.com/jira/browse/JBAS-5332
             Project: JBoss Application Server
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: EJB2
    Affects Versions: JBossAS-5.0.0.Beta4, JBossAS-4.2.2.GA
            Reporter: Adrian Brock
             Fix For: JBossAS-5.0.0.CR1, JBossAS-4.2.3.GA


The container artifacts i.e. [Session|Entity|MessageDriven]Container, interceptors, cache, pool, ProxyBindings
should have symmetric create/start/stop/destroy methods.

e.g. The MessageDrivenContainer does this in destroy
         // Destroy container invoker
         for (Iterator it = proxyFactories.keySet().iterator(); it.hasNext();)
         {
            String invokerBinding = (String) it.next();
            EJBProxyFactory ci = (EJBProxyFactory) proxyFactories.get(invokerBinding);
            ci.destroy();
            ci.setContainer(null);
            try
            {
               ObjectName containerName = super.getJmxName();
               Hashtable props = containerName.getKeyPropertyList();
               props.put("plugin", "invoker");
               props.put("binding", invokerBinding);
               ObjectName invokerName = new ObjectName(containerName.getDomain(), props);
               server.unregisterMBean(invokerName);
            }
            catch(Throwable ignore)
            {
            }
         }

The setContainer(null) is wrong since it isn't the one that sets the container in create()
that is done by EjbModule in its createService() method

In this case, the fix is to either move the setting of container to MessageDrivenContainer::createService()
or move the nulling of the container to EjbModule::destroyService()

Other artifacts also need checking and fixing with tests writing to validate that each container can
go through a stop/destroy/create/start lifecycle and still function correctly.

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