Moving to dev@.
-1. Please revert your change and let's fix it properly. In the future
please do not revert my changes without discussing that with me, even if
you believe it's the right thing to do. The PropertyEditoryTypeConverter
and being a Service and leaks are two separate issues.
Hadrian
On 09/02/2011 08:51 AM, davscl...@apache.org wrote:
Author: davsclaus
Date: Fri Sep 2 12:51:57 2011
New Revision: 1164515
URL: http://svn.apache.org/viewvc?rev=1164515&view=rev
Log:
CAMEL-4392. Clear cache maps when stopping Camel to avoid leaks
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java?rev=1164515&r1=1164514&r2=1164515&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/PropertyEditorTypeConverter.java
Fri Sep 2 12:51:57 2011
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.camel.Exchange;
+import org.apache.camel.Service;
import org.apache.camel.TypeConverter;
import org.apache.camel.util.LRUSoftCache;
import org.apache.camel.util.ObjectHelper;
@@ -34,7 +35,7 @@ import org.slf4j.LoggerFactory;
*
* @version
*/
-public class PropertyEditorTypeConverter implements TypeConverter {
+public class PropertyEditorTypeConverter implements TypeConverter, Service {
private static final Logger LOG =
LoggerFactory.getLogger(PropertyEditorTypeConverter.class);
// use a soft bound cache to avoid using too much memory in case a lot of
different classes
@@ -113,4 +114,15 @@ public class PropertyEditorTypeConverter
public<T> T mandatoryConvertTo(Class<T> type, Exchange exchange, Object
value) {
return convertTo(type, value);
}
+
+ public void start() throws Exception {
+ // noop
+ }
+
+ public void stop() throws Exception {
+ // clear caches so we dont leak
+ cache.clear();
+ misses.clear();
+ }
+
}