Author: ningjiang
Date: Tue Jun 12 02:10:26 2007
New Revision: 546431
URL: http://svn.apache.org/viewvc?view=rev&rev=546431
Log:
CXF-719 Fixed the memory leak of Endpoint.stop()
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ManagedEndpoint.java
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ManagedEndpoint.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ManagedEndpoint.java?view=diff&rev=546431&r1=546430&r2=546431
==============================================================================
---
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ManagedEndpoint.java
(original)
+++
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/endpoint/ManagedEndpoint.java
Tue Jun 12 02:10:26 2007
@@ -48,6 +48,13 @@
@ManagedOperation
public void start() {
+ if (state == State.STARTED) {
+ return;
+ }
+ ServerLifeCycleManager mgr =
bus.getExtension(ServerLifeCycleManager.class);
+ if (mgr != null) {
+ mgr.registerListener(this);
+ }
server.start();
}
@@ -96,7 +103,12 @@
public void stopServer(Server s) {
if (server.equals(s)) {
- state = State.STOPPED;
+ state = State.STOPPED;
+ // unregister server to avoid the memory leak
+ ServerLifeCycleManager mgr =
bus.getExtension(ServerLifeCycleManager.class);
+ if (mgr != null) {
+ mgr.unRegisterListener(this);
+ }
}
}