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