diff --git a/hazelcast/src/main/java/com/hazelcast/multimap/impl/operations/MergeOperation.java b/hazelcast/src/main/java/com/hazelcast/multimap/impl/operations/MergeOperation.java index 90df98744b4b..583ccdef5040 100644 --- a/hazelcast/src/main/java/com/hazelcast/multimap/impl/operations/MergeOperation.java +++ b/hazelcast/src/main/java/com/hazelcast/multimap/impl/operations/MergeOperation.java @@ -16,7 +16,6 @@ package com.hazelcast.multimap.impl.operations; -import com.hazelcast.core.EntryEventType; import com.hazelcast.multimap.impl.MultiMapContainer; import com.hazelcast.multimap.impl.MultiMapDataSerializerHook; import com.hazelcast.multimap.impl.MultiMapMergeContainer; @@ -75,7 +74,6 @@ public void run() throws Exception { MultiMapValue result = container.merge(mergeContainer, mergePolicy); if (result != null) { resultMap.put(key, result.getCollection(false)); - publishEvent(EntryEventType.MERGED, key, result, null); } } response = !resultMap.isEmpty(); diff --git a/hazelcast/src/test/java/com/hazelcast/multimap/MultiMapSplitBrainTest.java b/hazelcast/src/test/java/com/hazelcast/multimap/MultiMapSplitBrainTest.java index 7059f55cf762..abc7162cc74d 100644 --- a/hazelcast/src/test/java/com/hazelcast/multimap/MultiMapSplitBrainTest.java +++ b/hazelcast/src/test/java/com/hazelcast/multimap/MultiMapSplitBrainTest.java @@ -19,7 +19,10 @@ import com.hazelcast.config.Config; import com.hazelcast.config.MergePolicyConfig; import com.hazelcast.config.MultiMapConfig; +import com.hazelcast.core.EntryEvent; +import com.hazelcast.core.EntryListener; import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.MapEvent; import com.hazelcast.core.MultiMap; import com.hazelcast.spi.merge.DiscardMergePolicy; import com.hazelcast.spi.merge.HigherHitsMergePolicy; @@ -70,13 +73,19 @@ public class MultiMapSplitBrainTest extends SplitBrainTestSupport { public static Collection parameters() { return asList(new Object[][]{ {DiscardMergePolicy.class, true}, + {DiscardMergePolicy.class, false}, {HigherHitsMergePolicy.class, true}, + {HigherHitsMergePolicy.class, false}, {LatestAccessMergePolicy.class, true}, + {LatestAccessMergePolicy.class, false}, {LatestUpdateMergePolicy.class, true}, + {LatestUpdateMergePolicy.class, false}, {PassThroughMergePolicy.class, true}, + {PassThroughMergePolicy.class, false}, {PutIfAbsentMergePolicy.class, true}, + {PutIfAbsentMergePolicy.class, false}, {RemoveValuesMergePolicy.class, true}, - + {RemoveValuesMergePolicy.class, false}, {ReturnPiCollectionMergePolicy.class, true}, {ReturnPiCollectionMergePolicy.class, false}, {MergeCollectionOfIntegerValuesMergePolicy.class, true}, @@ -133,6 +142,11 @@ protected void onAfterSplitBrainCreated(HazelcastInstance[] firstBrain, Hazelcas multiMapA2 = secondBrain[0].getMultiMap(multiMapNameA); multiMapB2 = secondBrain[0].getMultiMap(multiMapNameB); + EntryListener listener = new EmptyEntryListener(); + multiMapA1.addEntryListener(listener, true); + multiMapA2.addEntryListener(listener, true); + multiMapB2.addEntryListener(listener, true); + if (mergePolicyClass == DiscardMergePolicy.class) { afterSplitDiscardMergePolicy(); } else if (mergePolicyClass == HigherHitsMergePolicy.class) { @@ -458,4 +472,36 @@ private static void assertMultiMapsSize(MultiMap multiMap1, MultiMap } assertEqualsStringFormat("backupMultiMap should have size %d, but was %d", expectedSize, actualBackupSize); } + + private static class EmptyEntryListener implements EntryListener { + @Override + public void mapEvicted(MapEvent event) { + + } + + @Override + public void mapCleared(MapEvent event) { + + } + + @Override + public void entryUpdated(EntryEvent event) { + + } + + @Override + public void entryRemoved(EntryEvent event) { + + } + + @Override + public void entryEvicted(EntryEvent event) { + + } + + @Override + public void entryAdded(EntryEvent event) { + + } + } }