Author: davsclaus
Date: Mon Feb 27 12:33:38 2012
New Revision: 1294131

URL: http://svn.apache.org/viewvc?rev=1294131&view=rev
Log:
CAMEL-5046: Cleanup when stopping tracer to not leak resource.

Modified:
    camel/branches/camel-2.9.x/   (props changed)
    
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
    
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 27 12:33:38 2012
@@ -1 +1 @@
-/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021,1291555,1291727,1291848,1291864,1292114,1292384,1292725,1292760,1292767,1293079,1293268,1293288,1293330,1293590,1293828,1293852,1293855
+/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021,1291555,1291727,1291848,1291864,1292114,1292384,1292725,1292760,1292767,1293079,1293268,1293288,1293330,1293590,1293828,1293852,1293855,1294130

Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java?rev=1294131&r1=1294130&r2=1294131&view=diff
==============================================================================
--- 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
 (original)
+++ 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
 Mon Feb 27 12:33:38 2012
@@ -105,7 +105,7 @@ public class DefaultManagementLifecycleS
     private CamelContext camelContext;
     private volatile boolean initialized;
     private final Set<String> knowRouteIds = new HashSet<String>();
-    private Map<Object, ManagedTracer> managedTracers = new HashMap<Object, 
ManagedTracer>();
+    private final Map<Tracer, ManagedTracer> managedTracers = new 
HashMap<Tracer, ManagedTracer>();
 
     public DefaultManagementLifecycleStrategy() {
     }
@@ -400,14 +400,14 @@ public class DefaultManagementLifecycleS
             return ((ManagementAware) service).getManagedObject(service);
         } else if (service instanceof Tracer) {
             // special for tracer
-            Object mo = this.managedTracers.get(service);
-            if (mo == null) {
-                ManagedTracer mt = new ManagedTracer(context, (Tracer) 
service);
+            Tracer tracer = (Tracer) service;
+            ManagedTracer mt = managedTracers.get(tracer);
+            if (mt == null) {
+                mt = new ManagedTracer(context, tracer);
                 mt.init(getManagementStrategy());
-                this.managedTracers.put(service, mt);
-                mo = mt;
+                managedTracers.put(tracer, mt);
             }
-            return mo;
+            return mt;
         } else if (service instanceof EventNotifier) {
             answer = 
getManagementObjectStrategy().getManagedObjectForEventNotifier(context, 
(EventNotifier) service);
         } else if (service instanceof Producer) {

Modified: 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java?rev=1294131&r1=1294130&r2=1294131&view=diff
==============================================================================
--- 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
 (original)
+++ 
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
 Mon Feb 27 12:33:38 2012
@@ -54,13 +54,12 @@ public class Tracer implements Intercept
     private boolean useJpa;
     private CamelLogProcessor logger;
     private TraceInterceptorFactory traceInterceptorFactory = new 
DefaultTraceInterceptorFactory();
-    private CopyOnWriteArrayList<TraceEventHandler> traceHandlers;
+    private final List<TraceEventHandler> traceHandlers = new 
CopyOnWriteArrayList<TraceEventHandler>();
     private String jpaTraceEventMessageClassName = JPA_TRACE_EVENT_MESSAGE;
     private boolean jmxTraceNotifications;
     private int traceBodySize = 10000;
     
     public Tracer() {
-        traceHandlers = new CopyOnWriteArrayList<TraceEventHandler>();
         traceHandlers.add(new DefaultTraceEventHandler(this));
     }
 
@@ -316,7 +315,6 @@ public class Tracer implements Intercept
     
     /**
      * Add the given tracehandler
-     * @param traceHandler
      */
     public void addTraceHandler(TraceEventHandler traceHandler) {
         this.traceHandlers.add(traceHandler);
@@ -324,7 +322,6 @@ public class Tracer implements Intercept
     
     /**
      * Remove the given tracehandler
-     * @param traceHandler
      */
     public void removeTraceHandler(TraceEventHandler traceHandler) {
         this.traceHandlers.add(traceHandler);
@@ -367,7 +364,7 @@ public class Tracer implements Intercept
     }
 
     public void stop() throws Exception {
-        // noop
+        traceHandlers.clear();
     }
 
     @Override


Reply via email to