Author: rmannibucau
Date: Mon Aug 20 08:39:19 2012
New Revision: 1374944

URL: http://svn.apache.org/viewvc?rev=1374944&view=rev
Log:
PortAddressRegistry removeport should be symmetric to addport

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistry.java
    
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/PortAddressRegistry.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistry.java?rev=1374944&r1=1374943&r2=1374944&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistry.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/PortAddressRegistry.java
 Mon Aug 20 08:39:19 2012
@@ -23,6 +23,6 @@ import java.util.Set;
 
 public interface PortAddressRegistry {
     void addPort(String serviceId, QName serviceQName, String portId, QName 
portQName, String portInterface, String address) throws OpenEJBException;
-    void removePort(String serviceId, QName serviceQName, String portId);
+    void removePort(String serviceId, QName serviceQName, String portId, 
String portInterface);
     Set<PortAddress> getPorts(String id, QName serviceQName, String 
referenceClassName);
 }

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=1374944&r1=1374943&r2=1374944&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
 Mon Aug 20 08:39:19 2012
@@ -76,7 +76,7 @@ public class PortAddressRegistryImpl imp
         ports.put(portId, portAddress);
     }
 
-    public synchronized void removePort(String serviceId, QName serviceQName, 
String portId) {
+    public synchronized void removePort(String serviceId, QName serviceQName, 
String portId, String portInterface) {
         if (serviceId == null) throw new NullPointerException("serviceId is 
null");
         if (serviceQName == null) throw new NullPointerException("serviceQName 
is null");
         if (portId == null) throw new NullPointerException("portId is null");
@@ -88,12 +88,16 @@ public class PortAddressRegistryImpl imp
             return;
         }
 
+        Map<String, PortAddress> ports = null;
+
         // remove from portsByInterface
-        Map<String, PortAddress> ports = portsByInterface.get(serviceId);
-        if (ports != null) {
-            ports.remove(portId);
-            if (ports.isEmpty()) {
-                portsByInterface.remove(serviceId);
+        if (portInterface != null) {
+            ports = portsByInterface.get(portInterface);
+            if (ports != null) {
+                ports.remove(portId);
+                if (ports.isEmpty()) {
+                    portsByInterface.remove(portInterface);
+                }
             }
         }
 

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=1374944&r1=1374943&r2=1374944&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
 Mon Aug 20 08:39:19 2012
@@ -385,7 +385,7 @@ public abstract class WsService implemen
                         String address = 
ejbAddresses.remove(enterpriseBean.ejbDeploymentId);
                         addressesForApp(appInfo.appId).remove(address);
                         if (address != null) {
-                            portAddressRegistry.removePort(portInfo.serviceId, 
portInfo.wsdlService, portInfo.portId);
+                            portAddressRegistry.removePort(portInfo.serviceId, 
portInfo.wsdlService, portInfo.portId, portInfo.seiInterfaceName);
                         }
 
                         // remove container from web server
@@ -421,7 +421,7 @@ public abstract class WsService implemen
                     String address = servletAddresses.remove(webApp.moduleId + 
"." + servlet.servletName);
                     addressesForApp(webApp.moduleId).remove(address);
                     if (address != null) {
-                        portAddressRegistry.removePort(portInfo.serviceId, 
portInfo.wsdlService, portInfo.portId);
+                        portAddressRegistry.removePort(portInfo.serviceId, 
portInfo.wsdlService, portInfo.portId, portInfo.seiInterfaceName);
                     }
 
                     // clear servlet's reference to the webservice container


Reply via email to