diff --git a/drools-core/src/main/java/org/drools/core/common/ClassAwareObjectStore.java b/drools-core/src/main/java/org/drools/core/common/ClassAwareObjectStore.java index 19eb9b2b03d..49bac807017 100644 --- a/drools-core/src/main/java/org/drools/core/common/ClassAwareObjectStore.java +++ b/drools-core/src/main/java/org/drools/core/common/ClassAwareObjectStore.java @@ -265,7 +265,7 @@ private ConcreteClassStore getOrCreateConcreteClassStore(Class clazz) { } private ConcreteClassStore makeStoreConcrete(SingleClassStore storeToMakeConcrete) { - ConcreteClassStore store = storeToMakeConcrete.makeConcrete(); + ConcreteClassStore store = storeToMakeConcrete.makeConcrete(this.isEqualityBehaviour); Class storedClass = storeToMakeConcrete.getStoredClass(); for (SingleClassStore classStore : storesMap.values()) { @@ -296,7 +296,7 @@ public interface SingleClassStore extends Externalizable, FactHandleClassStore { Iterator factHandlesIterator(boolean assrt); boolean isConcrete(); - ConcreteClassStore makeConcrete(); + ConcreteClassStore makeConcrete(boolean isEqualityBehaviour); default Iterator iterator() { return factHandlesIterator(true); @@ -428,8 +428,8 @@ public boolean isConcrete() { } @Override - public ConcreteClassStore makeConcrete() { - identityMap = new FactHandleMap(true); + public ConcreteClassStore makeConcrete(boolean isEqualityBehaviour) { + identityMap = new FactHandleMap(!isEqualityBehaviour); return this; } }