Author: rmannibucau Date: Thu Oct 31 16:28:15 2013 New Revision: 1537544 URL: http://svn.apache.org/r1537544 Log: TOMEE-1069 undeploying rar resources correctly
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.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=1537544&r1=1537543&r2=1537544&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 Oct 31 16:28:15 2013 @@ -1317,7 +1317,9 @@ public class Assembler extends Assembler logger.debug("Undeploying Applications"); final Assembler assembler = this; - for (final AppInfo appInfo : assembler.getDeployedApplications()) { + final List<AppInfo> deployedApps = new ArrayList<AppInfo>(assembler.getDeployedApplications()); + Collections.reverse(deployedApps); // if an app relies on the previous one it surely relies on it too at undeploy time + for (final AppInfo appInfo : deployedApps) { try { assembler.destroyApplication(appInfo.path); } catch (UndeployException e) { @@ -1758,6 +1760,18 @@ public class Assembler extends Assembler logger.warning("can't unbind resource '{0}'", id); } } + for (final ConnectorInfo connector : appInfo.connectors) { + if (connector.resourceAdapter == null || connector.resourceAdapter.id == null) { + continue; + } + + final String name = OPENEJB_RESOURCE_JNDI_PREFIX + connector.resourceAdapter.id; + try { + destroyLookedUpResource(globalContext, connector.resourceAdapter.id, name); + } catch (final NamingException e) { + logger.warning("can't unbind resource '{0}'", connector); + } + } containerSystem.removeAppContext(appInfo.appId);