Author: rmannibucau Date: Thu Jul 4 07:55:27 2013 New Revision: 1499672 URL: http://svn.apache.org/r1499672 Log: mainly final + using a method to destroy resources in Assembler to make it more readable
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBNamingContextListener.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1499672&r1=1499671&r2=1499672&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Thu Jul 4 07:55:27 2013 @@ -1393,7 +1393,7 @@ public class Assembler extends Assembler } resourceAdapter.stop(); - } catch (Throwable t) { + } catch (final Throwable t) { logger.fatal("ResourceAdapter Shutdown Failed: " + name, t); } } else if (DataSourceFactory.knows(object)) { @@ -1401,7 +1401,7 @@ public class Assembler extends Assembler try { DataSourceFactory.destroy(object); - } catch (Throwable t) { + } catch (final Throwable t) { //Ignore } @@ -1421,6 +1421,8 @@ public class Assembler extends Assembler } } else if (ExecutorService.class.isInstance(object)) { ExecutorService.class.cast(object).shutdown(); + } else if (DataSource.class.isInstance(object)) { + } else if (logger.isDebugEnabled()) { logger.debug("Not processing resource on destroy: " + className); } @@ -1436,7 +1438,7 @@ public class Assembler extends Assembler break; } } - } catch (Exception e) { + } catch (final Exception e) { logger.debug("Failed to purge resource on destroy: " + e.getMessage()); } } @@ -1734,23 +1736,15 @@ public class Assembler extends Assembler } else { globalContext.unbind(name); } - } catch (NamingException e) { + } catch (final NamingException e) { logger.warning("can't unbind resource '{0}'", id); } } for (final String id : appInfo.resourceIds) { final String name = OPENEJB_RESOURCE_JNDI_PREFIX + id; try { - final Object object = globalContext.lookup(name); - final String clazz; - if (object == null) { // should it be possible? - clazz = "?"; - } else { - clazz = object.getClass().getName(); - } - destroyResource(id, clazz, object); - globalContext.unbind(name); - } catch (NamingException e) { + destroyLookedUpResource(globalContext, id, name); + } catch (final NamingException e) { logger.warning("can't unbind resource '{0}'", id); } } @@ -1769,6 +1763,18 @@ public class Assembler extends Assembler } } + private void destroyLookedUpResource(Context globalContext, String id, String name) throws NamingException { + final Object object = globalContext.lookup(name); + final String clazz; + if (object == null) { // should it be possible? + clazz = "?"; + } else { + clazz = object.getClass().getName(); + } + destroyResource(id, clazz, object); + globalContext.unbind(name); + } + private void unbind(final Context context, final String name) { try { context.unbind(name); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1499672&r1=1499671&r2=1499672&view=diff ============================================================================== --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java Thu Jul 4 07:55:27 2013 @@ -228,6 +228,9 @@ public class DataSourceFactory { @SuppressWarnings("SuspiciousMethodCalls") public static void destroy(final Object o) throws Throwable { final Object instance = realInstance(o); + if (instance == null) { + return; + } final DataSourceCreator remove = creatorByDataSource.remove(instance); remove.destroy(instance); } Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBNamingContextListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBNamingContextListener.java?rev=1499672&r1=1499671&r2=1499672&view=diff ============================================================================== --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBNamingContextListener.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBNamingContextListener.java Thu Jul 4 07:55:27 2013 @@ -260,7 +260,7 @@ public class OpenEJBNamingContextListene } } - private void bindResource(String name, Object value, String type) { + private void bindResource(final String name, final Object value, final String type) { Assembler assembler = (Assembler) SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class); try { assembler.getContainerSystem().getJNDIContext().lookup(Assembler.OPENEJB_RESOURCE_JNDI_PREFIX + name); @@ -269,7 +269,7 @@ public class OpenEJBNamingContextListene // no-op: OK } - ResourceInfo resourceInfo = new ResourceInfo(); + final ResourceInfo resourceInfo = new ResourceInfo(); resourceInfo.id = name; resourceInfo.service = "Resource"; resourceInfo.types.add(type);