Author: davsclaus Date: Tue Apr 17 08:39:34 2012 New Revision: 1326994 URL: http://svn.apache.org/viewvc?rev=1326994&view=rev Log: Use concurrent list in case lazy loading type converters is enabled and doing concurrent testing which may cause a concurrent modification exception while traversing fallback type converters
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java?rev=1326994&r1=1326993&r2=1326994&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/BaseTypeConverterRegistry.java Tue Apr 17 08:39:34 2012 @@ -25,6 +25,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; @@ -58,7 +59,7 @@ public abstract class BaseTypeConverterR // for misses use a soft reference cache map, as the classes may be un-deployed at runtime protected final LRUSoftCache<TypeMapping, TypeMapping> misses = new LRUSoftCache<TypeMapping, TypeMapping>(1000); protected final List<TypeConverterLoader> typeConverterLoaders = new ArrayList<TypeConverterLoader>(); - protected final List<FallbackTypeConverter> fallbackConverters = new ArrayList<FallbackTypeConverter>(); + protected final List<FallbackTypeConverter> fallbackConverters = new CopyOnWriteArrayList<FallbackTypeConverter>(); protected final PackageScanClassResolver resolver; protected Injector injector; protected final FactoryFinder factoryFinder;