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);
 


Reply via email to