Index: src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java =================================================================== --- src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java (revision 32708) +++ src/main/java/org/drools/common/ObjectTypeConfigurationRegistry.java (working copy) @@ -4,6 +4,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.drools.facttemplates.Fact; import org.drools.reteoo.ClassObjectTypeConf; @@ -20,7 +21,7 @@ public ObjectTypeConfigurationRegistry(InternalRuleBase ruleBase ) { super(); this.ruleBase = ruleBase; - this.typeConfMap = new HashMap(); + this.typeConfMap = new ConcurrentHashMap(); } Index: src/main/java/org/drools/reteoo/EntryPointNode.java =================================================================== --- src/main/java/org/drools/reteoo/EntryPointNode.java (revision 32708) +++ src/main/java/org/drools/reteoo/EntryPointNode.java (working copy) @@ -24,6 +24,7 @@ import java.io.ObjectOutput; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.drools.base.ShadowProxy; import org.drools.common.BaseNode; @@ -102,7 +103,7 @@ objectSource, 999 ); // irrelevant for this node, since it overrides sink management this.entryPoint = entryPoint; - this.objectTypeNodes = new HashMap(); + this.objectTypeNodes = new ConcurrentHashMap(); } // ------------------------------------------------------------ Index: src/main/java/org/drools/base/ClassFieldAccessorCache.java =================================================================== --- src/main/java/org/drools/base/ClassFieldAccessorCache.java (revision 32708) +++ src/main/java/org/drools/base/ClassFieldAccessorCache.java (working copy) @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.WeakHashMap; +import java.util.concurrent.ConcurrentHashMap; import org.drools.RuntimeDroolsException; import org.drools.util.asm.ClassFieldInspector; @@ -290,12 +291,12 @@ public static class CacheEntry { private ByteArrayClassLoader byteArrayClassLoader; - private final Map readCache = new HashMap(); - private final Map writeCache = new HashMap(); + private final Map readCache = new ConcurrentHashMap(); + private final Map writeCache = new ConcurrentHashMap(); - private final Map, ClassFieldInspector> inspectors = new HashMap, ClassFieldInspector>(); + private final Map, ClassFieldInspector> inspectors = new ConcurrentHashMap, ClassFieldInspector>(); - private final Map objectTypes = new HashMap(); + private final Map objectTypes = new ConcurrentHashMap(); public CacheEntry(ClassLoader parentClassLoader) { if ( parentClassLoader == null ) {