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

Emanuel Muckenhuber (JIRA) jira-events at lists.jboss.org
Thu Sep 25 03:06:20 EDT 2008


     [ https://jira.jboss.org/jira/browse/JBAS-5332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emanuel Muckenhuber updated JBAS-5332:
--------------------------------------

    JBoss Forum Reference: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=142876


> Container artifacts should have symmetric lifecycles
> ----------------------------------------------------
>
>                 Key: JBAS-5332
>                 URL: https://jira.jboss.org/jira/browse/JBAS-5332
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: EJB2
>    Affects Versions: JBossAS-4.2.2.GA, JBossAS-5.0.0.Beta4
>            Reporter: Adrian Brock
>            Assignee: Emanuel Muckenhuber
>             Fix For: JBossAS-5.0.1.CR1
>
>
> 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: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list