Author: rmannibucau
Date: Tue Aug 21 14:42:32 2012
New Revision: 1375582

URL: http://svn.apache.org/viewvc?rev=1375582&view=rev
Log:
TOMEE-394 cleanup of webservice undeployment

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistryImpl.java
    
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistryImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistryImpl.java?rev=1375582&r1=1375581&r2=1375582&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistryImpl.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistryImpl.java
 Tue Aug 21 14:42:32 2012
@@ -51,13 +51,12 @@ public class PortAddressRegistryImpl imp
         Map<String, PortAddress> ports = null;
         if (portInterface != null) { // localbean have no interface
             ports = portsByInterface.get(portInterface);
+            if (ports == null) {
+                ports = new TreeMap<String, PortAddress>();
+                portsByInterface.put(portInterface, ports);
+            }
+            ports.put(portId, portAddress);
         }
-        if (ports == null) {
-            ports = new TreeMap<String, PortAddress>();
-            portsByInterface.put(portInterface, ports);
-        }
-        ports.put(portId, portAddress);
-
 
         // portsByServiceId
         ports = portsByServiceId.get(serviceId);

Modified: 
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1375582&r1=1375581&r2=1375582&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
 Tue Aug 21 14:42:32 2012
@@ -396,6 +396,7 @@ public abstract class WsService implemen
 
                         // destroy webservice container
                         destroyEjbWsContainer(enterpriseBean.ejbDeploymentId);
+                        ejbLocations.remove(enterpriseBean.ejbDeploymentId);
                     }
                 }
             }
@@ -412,9 +413,12 @@ public abstract class WsService implemen
                         continue;
                     }
 
-                    PortInfo portInfo = ports.get(servlet.servletClass);
+                    PortInfo portInfo = ports.remove(servlet.servletClass);
                     if (portInfo == null) {
-                        continue;
+                        portInfo = ports.remove(servlet.servletName);
+                        if (portInfo == null) {
+                            continue;
+                        }
                     }
 
                     // remove wsdl addresses from global registry
@@ -426,13 +430,18 @@ public abstract class WsService implemen
 
                     // clear servlet's reference to the webservice container
                     if (this.wsRegistry != null) {
-                        this.wsRegistry.clearWsContainer(virtualHost, 
webApp.contextRoot, servlet.servletName);
+                        try {
+                            this.wsRegistry.clearWsContainer(virtualHost, 
webApp.contextRoot, servlet.servletName);
+                        } catch (IllegalArgumentException ignored) {
+                            // no-op
+                        }
                     }
 
                     // destroy webservice container
                     destroyPojoWsContainer(portInfo.serviceLink);
                 }
             }
+            addressesByApplication.remove(appInfo.appId);
         }
     }
 


Reply via email to