You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/03/20 18:01:47 UTC
svn commit: r1302998 -
/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java
Author: dkulp
Date: Tue Mar 20 17:01:47 2012
New Revision: 1302998
URL: http://svn.apache.org/viewvc?rev=1302998&view=rev
Log:
[CXF-4123, CXF-4185] When using a global registry (OSGi), the servlet
should not destroy the registry when refreshed.
Modified:
cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java
Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java?rev=1302998&r1=1302997&r2=1302998&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/CXFNonSpringServlet.java Tue Mar 20 17:01:47 2012
@@ -41,6 +41,7 @@ public class CXFNonSpringServlet extends
private static final long serialVersionUID = -2437897227486327166L;
private DestinationRegistry destinationRegistry;
+ private boolean globalRegistry;
private Bus bus;
private ServletController controller;
private ClassLoader loader;
@@ -55,6 +56,7 @@ public class CXFNonSpringServlet extends
public CXFNonSpringServlet(DestinationRegistry destinationRegistry,
boolean loadBus) {
this.destinationRegistry = destinationRegistry;
+ this.globalRegistry = destinationRegistry != null;
this.loadBus = loadBus;
}
@@ -134,15 +136,18 @@ public class CXFNonSpringServlet extends
}
public void destroy() {
- for (String path : destinationRegistry.getDestinationsPaths()) {
- // clean up the destination in case the destination itself can no longer access the registry later
- AbstractHTTPDestination dest = destinationRegistry.getDestinationForPath(path);
- synchronized (dest) {
- destinationRegistry.removeDestination(path);
- dest.releaseRegistry();
+ if (!globalRegistry) {
+ for (String path : destinationRegistry.getDestinationsPaths()) {
+ // clean up the destination in case the destination itself can
+ // no longer access the registry later
+ AbstractHTTPDestination dest = destinationRegistry.getDestinationForPath(path);
+ synchronized (dest) {
+ destinationRegistry.removeDestination(path);
+ dest.releaseRegistry();
+ }
}
+ destinationRegistry = null;
}
- destinationRegistry = null;
destroyBus();
}