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