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