You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/10/31 17:28:16 UTC
svn commit: r1537544 -
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
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);