You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Andy Gumbrecht (JIRA)" <ji...@apache.org> on 2010/04/09 12:11:50 UTC

[jira] Updated: (OPENEJB-1249) SimpleServiceManager.stop() not processing ResourceAdapters

     [ https://issues.apache.org/jira/browse/OPENEJB-1249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Gumbrecht updated OPENEJB-1249:
------------------------------------

    Attachment: SSM Patch.patch

Fix for this issue

> SimpleServiceManager.stop() not processing ResourceAdapters
> -----------------------------------------------------------
>
>                 Key: OPENEJB-1249
>                 URL: https://issues.apache.org/jira/browse/OPENEJB-1249
>             Project: OpenEJB
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.1.3
>         Environment: NA
>            Reporter: Andy Gumbrecht
>             Fix For: 3.1.3
>
>         Attachments: SSM Patch.patch
>
>   Original Estimate: 0.08h
>  Remaining Estimate: 0.08h
>
> SimpleServiceManager.stop() not processing ResourceAdapters on a standalone remote stop due an oversight.
> Current implementation calls containerSystem.getJNDIContext().listBindings("openejb/resourceAdapters"); and then hides the naming exception.
> The following snippet resolves this issue, and also checks for instances of ResourceAdapter.
> try {
>             ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
>             NamingEnumeration<Binding> namingEnumeration = null;
>             try {
>                 namingEnumeration = containerSystem.getJNDIContext().listBindings("openejb/Resource");
>             } catch (NamingException ignored) {
>                 logger.debug("No resource adapters were created");
>             }
>             if (namingEnumeration != null) {
>                 while (namingEnumeration.hasMoreElements()) {
>                     Binding binding = namingEnumeration.nextElement();
>                     Object object = binding.getObject();
>                     if (object instanceof ResourceAdapter) {
>                         ResourceAdapter resourceAdapter = (ResourceAdapter) object;
>                         logger.debug("Stopping ResourceAdapter: " + binding.getName());
>                         try {
>                             resourceAdapter.stop();
>                         } catch (Exception e) {
>                             logger.fatal("ResourceAdapter Shutdown Failed: " + binding.getName(), e);
>                         }
>                     }
>                 }
>             } else {
>                 logger.warning("No resources were found");
>             }
>         } catch (Throwable e) {
>             logger.fatal("Unable to get ResourceAdapters from JNDI.  Stop must be called on them for proper vm shutdown.", e);
>         } 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.