You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by nn...@apache.org on 2021/04/05 23:54:15 UTC

[geode] 15/28: GEODE-8361: Use Set instead of List to track cleared buckets (#5379)

This is an automated email from the ASF dual-hosted git repository.

nnag pushed a commit to branch feature/GEODE-7665
in repository https://gitbox.apache.org/repos/asf/geode.git

commit d9871c95cd4820bb807ee07221657c7e3f6fe82a
Author: Donal Evans <do...@pivotal.io>
AuthorDate: Fri Jul 17 12:55:51 2020 -0700

    GEODE-8361: Use Set instead of List to track cleared buckets (#5379)
    
    - Refactor PartitionRegionClear to use Set instead of List
    - Some other changes to remove warnings/alerts from PartitionedRegionClear and PartitionedRegionClearMessage
    
    Authored-by: Donal Evans <do...@vmware.com>
---
 .../codeAnalysis/sanctionedDataSerializables.txt   |  2 +-
 .../internal/cache/PartitionedRegionClear.java     | 36 +++++-------
 .../cache/PartitionedRegionClearMessage.java       | 28 +++++----
 .../internal/cache/PartitionedRegionClearTest.java | 68 ++++++++++++----------
 4 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
index b2001f9..cb4e6b3 100644
--- a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
+++ b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
@@ -1080,7 +1080,7 @@ fromData,40
 toData,36
 
 org/apache/geode/internal/cache/PartitionedRegionClearMessage$PartitionedRegionClearReplyMessage,2
-fromData,29
+fromData,32
 toData,28
 
 org/apache/geode/internal/cache/PoolFactoryImpl$PoolAttributes,2
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClear.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClear.java
index 030b36e..5a0621d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClear.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClear.java
@@ -14,11 +14,9 @@
  */
 package org.apache.geode.internal.cache;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
+import java.util.Set;
 
 import org.apache.logging.log4j.Logger;
 
@@ -32,7 +30,6 @@ import org.apache.geode.distributed.internal.DistributionManager;
 import org.apache.geode.distributed.internal.MembershipListener;
 import org.apache.geode.distributed.internal.ReplyException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.cache.versions.RegionVersionVector;
 import org.apache.geode.logging.internal.log4j.api.LogService;
 
 public class PartitionedRegionClear {
@@ -98,10 +95,8 @@ public class PartitionedRegionClear {
         PartitionedRegionClearMessage.OperationType.OP_UNLOCK_FOR_PR_CLEAR);
   }
 
-  List clearRegion(RegionEventImpl regionEvent, boolean cacheWrite,
-      RegionVersionVector vector) {
-    List allBucketsCleared = new ArrayList();
-    allBucketsCleared.addAll(clearRegionLocal(regionEvent));
+  Set<Integer> clearRegion(RegionEventImpl regionEvent) {
+    Set<Integer> allBucketsCleared = new HashSet<>(clearRegionLocal(regionEvent));
     allBucketsCleared.addAll(sendPartitionedRegionClearMessage(regionEvent,
         PartitionedRegionClearMessage.OperationType.OP_PR_CLEAR));
     return allBucketsCleared;
@@ -116,8 +111,8 @@ public class PartitionedRegionClear {
         if (!bucketRegion.getBucketAdvisor().hasPrimary()) {
           if (retryTimer.overMaximum()) {
             throw new PartitionedRegionPartialClearException(
-                "Unable to find primary bucket region during clear operation for region: " +
-                    partitionedRegion.getName());
+                "Unable to find primary bucket region during clear operation on "
+                    + partitionedRegion.getName() + " region.");
           }
           retryTimer.waitForBucketsRecovery();
           retry = true;
@@ -126,8 +121,8 @@ public class PartitionedRegionClear {
     } while (retry);
   }
 
-  public ArrayList clearRegionLocal(RegionEventImpl regionEvent) {
-    ArrayList clearedBuckets = new ArrayList();
+  public Set<Integer> clearRegionLocal(RegionEventImpl regionEvent) {
+    Set<Integer> clearedBuckets = new HashSet<>();
     setMembershipChange(false);
     // Synchronized to handle the requester departure.
     synchronized (lockForListenerAndClientNotification) {
@@ -255,7 +250,7 @@ public class PartitionedRegionClear {
     }
   }
 
-  protected List sendPartitionedRegionClearMessage(RegionEventImpl event,
+  protected Set<Integer> sendPartitionedRegionClearMessage(RegionEventImpl event,
       PartitionedRegionClearMessage.OperationType op) {
     RegionEventImpl eventForLocalClear = (RegionEventImpl) event.clone();
     eventForLocalClear.setOperation(Operation.REGION_LOCAL_CLEAR);
@@ -269,10 +264,10 @@ public class PartitionedRegionClear {
     } while (true);
   }
 
-  protected List attemptToSendPartitionedRegionClearMessage(RegionEventImpl event,
+  protected Set<Integer> attemptToSendPartitionedRegionClearMessage(RegionEventImpl event,
       PartitionedRegionClearMessage.OperationType op)
       throws ForceReattemptException {
-    List bucketsOperated = null;
+    Set<Integer> bucketsOperated = null;
 
     if (partitionedRegion.getPRRoot() == null) {
       if (logger.isDebugEnabled()) {
@@ -284,17 +279,16 @@ public class PartitionedRegionClear {
       return bucketsOperated;
     }
 
-    final HashSet configRecipients =
-        new HashSet(partitionedRegion.getRegionAdvisor().adviseAllPRNodes());
+    final Set<InternalDistributedMember> configRecipients =
+        new HashSet<>(partitionedRegion.getRegionAdvisor().adviseAllPRNodes());
 
     try {
       final PartitionRegionConfig prConfig =
           partitionedRegion.getPRRoot().get(partitionedRegion.getRegionIdentifier());
 
       if (prConfig != null) {
-        Iterator itr = prConfig.getNodes().iterator();
-        while (itr.hasNext()) {
-          InternalDistributedMember idm = ((Node) itr.next()).getMemberId();
+        for (Node node : prConfig.getNodes()) {
+          InternalDistributedMember idm = node.getMemberId();
           if (!idm.equals(partitionedRegion.getMyId())) {
             configRecipients.add(idm);
           }
@@ -355,7 +349,7 @@ public class PartitionedRegionClear {
         obtainLockForClear(regionEvent);
       }
       try {
-        List bucketsCleared = clearRegion(regionEvent, cacheWrite, null);
+        Set<Integer> bucketsCleared = clearRegion(regionEvent);
 
         if (partitionedRegion.getTotalNumberOfBuckets() != bucketsCleared.size()) {
           String message = "Unable to clear all the buckets from the partitioned region "
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClearMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClearMessage.java
index b66ab44..b48c9ee 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClearMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionClearMessage.java
@@ -18,10 +18,7 @@ package org.apache.geode.internal.cache;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.CacheException;
@@ -36,6 +33,7 @@ import org.apache.geode.distributed.internal.ReplyProcessor21;
 import org.apache.geode.distributed.internal.ReplySender;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.Assert;
+import org.apache.geode.internal.CopyOnWriteHashSet;
 import org.apache.geode.internal.NanoTimer;
 import org.apache.geode.internal.cache.partitioned.PartitionMessage;
 import org.apache.geode.internal.logging.log4j.LogMarker;
@@ -57,7 +55,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
 
   private PartitionedRegion partitionedRegion;
 
-  private ArrayList bucketsCleared;
+  private Set<Integer> bucketsCleared;
 
   @Override
   public EventID getEventID() {
@@ -66,7 +64,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
 
   public PartitionedRegionClearMessage() {}
 
-  PartitionedRegionClearMessage(Set recipients, PartitionedRegion region,
+  PartitionedRegionClearMessage(Set<InternalDistributedMember> recipients, PartitionedRegion region,
       ReplyProcessor21 processor, PartitionedRegionClearMessage.OperationType operationType,
       final RegionEventImpl event) {
     super(recipients, region.getPRId(), processor);
@@ -90,11 +88,10 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
   protected Throwable processCheckForPR(PartitionedRegion pr,
       DistributionManager distributionManager) {
     if (pr != null && !pr.getDistributionAdvisor().isInitialized()) {
-      Throwable thr = new ForceReattemptException(
+      return new ForceReattemptException(
           String.format("%s : could not find partitioned region with Id %s",
               distributionManager.getDistributionManagerId(),
               pr.getRegionIdentifier()));
-      return thr;
     }
     return null;
   }
@@ -160,16 +157,17 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
    * received from the "far side"
    */
   public static class PartitionedRegionClearResponse extends ReplyProcessor21 {
-    CopyOnWriteArrayList bucketsCleared = new CopyOnWriteArrayList();
+    CopyOnWriteHashSet<Integer> bucketsCleared = new CopyOnWriteHashSet<>();
 
-    public PartitionedRegionClearResponse(InternalDistributedSystem system, Set initMembers) {
+    public PartitionedRegionClearResponse(InternalDistributedSystem system,
+        Set<InternalDistributedMember> initMembers) {
       super(system, initMembers);
     }
 
     @Override
     public void process(DistributionMessage msg) {
       if (msg instanceof PartitionedRegionClearReplyMessage) {
-        List buckets = ((PartitionedRegionClearReplyMessage) msg).bucketsCleared;
+        Set<Integer> buckets = ((PartitionedRegionClearReplyMessage) msg).bucketsCleared;
         if (buckets != null) {
           bucketsCleared.addAll(buckets);
         }
@@ -194,7 +192,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
 
   public static class PartitionedRegionClearReplyMessage extends ReplyMessage {
 
-    private ArrayList bucketsCleared;
+    private Set<Integer> bucketsCleared;
 
     private OperationType op;
 
@@ -209,7 +207,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
     public PartitionedRegionClearReplyMessage() {}
 
     private PartitionedRegionClearReplyMessage(int processorId, OperationType op,
-        ArrayList bucketsCleared, ReplyException ex) {
+        Set<Integer> bucketsCleared, ReplyException ex) {
       super();
       this.bucketsCleared = bucketsCleared;
       this.op = op;
@@ -219,7 +217,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
 
     /** Send an ack */
     public static void send(InternalDistributedMember recipient, int processorId, ReplySender dm,
-        OperationType op, ArrayList bucketsCleared, ReplyException ex) {
+        OperationType op, Set<Integer> bucketsCleared, ReplyException ex) {
 
       Assert.assertTrue(recipient != null, "partitionedRegionClearReplyMessage NULL reply message");
 
@@ -262,7 +260,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
         DeserializationContext context) throws IOException, ClassNotFoundException {
       super.fromData(in, context);
       op = PartitionedRegionClearMessage.OperationType.values()[in.readByte()];
-      bucketsCleared = DataSerializer.readArrayList(in);
+      bucketsCleared = DataSerializer.readObject(in);
     }
 
     @Override
@@ -270,7 +268,7 @@ public class PartitionedRegionClearMessage extends PartitionMessage {
         SerializationContext context) throws IOException {
       super.toData(out, context);
       out.writeByte(op.ordinal());
-      DataSerializer.writeArrayList(bucketsCleared, out);
+      DataSerializer.writeObject(bucketsCleared, out);
     }
 
     @Override
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionClearTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionClearTest.java
index d8c42af..bd37d9e 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionClearTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionClearTest.java
@@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
 
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 
 import org.junit.Before;
@@ -45,7 +44,6 @@ import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.MembershipListener;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.partitioned.RegionAdvisor;
-import org.apache.geode.internal.cache.versions.RegionVersionVector;
 
 public class PartitionedRegionClearTest {
 
@@ -74,7 +72,7 @@ public class PartitionedRegionClearTest {
     for (int i = 0; i < numBuckets; i++) {
       BucketRegion bucketRegion = mock(BucketRegion.class);
       when(bucketRegion.getBucketAdvisor()).thenReturn(bucketAdvisor);
-      when(bucketRegion.size()).thenReturn(1);
+      when(bucketRegion.size()).thenReturn(1).thenReturn(0);
       when(bucketRegion.getId()).thenReturn(i);
       bucketRegions.add(bucketRegion);
     }
@@ -131,7 +129,7 @@ public class PartitionedRegionClearTest {
     Region<String, PartitionRegionConfig> region = mock(Region.class);
     when(partitionedRegion.getPRRoot()).thenReturn(region);
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear)
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear)
         .attemptToSendPartitionedRegionClearMessage(regionEvent,
             PartitionedRegionClearMessage.OperationType.OP_LOCK_FOR_PR_CLEAR);
     InternalDistributedMember internalDistributedMember = mock(InternalDistributedMember.class);
@@ -151,7 +149,7 @@ public class PartitionedRegionClearTest {
     Region<String, PartitionRegionConfig> region = mock(Region.class);
     when(partitionedRegion.getPRRoot()).thenReturn(region);
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear)
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear)
         .attemptToSendPartitionedRegionClearMessage(regionEvent,
             PartitionedRegionClearMessage.OperationType.OP_UNLOCK_FOR_PR_CLEAR);
     InternalDistributedMember internalDistributedMember = mock(InternalDistributedMember.class);
@@ -171,14 +169,13 @@ public class PartitionedRegionClearTest {
     Region<String, PartitionRegionConfig> region = mock(Region.class);
     when(partitionedRegion.getPRRoot()).thenReturn(region);
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear)
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear)
         .attemptToSendPartitionedRegionClearMessage(regionEvent,
             PartitionedRegionClearMessage.OperationType.OP_PR_CLEAR);
     InternalDistributedMember internalDistributedMember = mock(InternalDistributedMember.class);
     when(distributionManager.getId()).thenReturn(internalDistributedMember);
-    RegionVersionVector regionVersionVector = mock(RegionVersionVector.class);
 
-    spyPartitionedRegionClear.clearRegion(regionEvent, false, regionVersionVector);
+    spyPartitionedRegionClear.clearRegion(regionEvent);
 
     verify(spyPartitionedRegionClear, times(1)).clearRegionLocal(regionEvent);
     verify(spyPartitionedRegionClear, times(1)).sendPartitionedRegionClearMessage(regionEvent,
@@ -227,7 +224,7 @@ public class PartitionedRegionClearTest {
     assertThat(thrown)
         .isInstanceOf(PartitionedRegionPartialClearException.class)
         .hasMessage(
-            "Unable to find primary bucket region during clear operation for region: prRegion");
+            "Unable to find primary bucket region during clear operation on prRegion region.");
     verify(retryTimer, times(0)).waitForBucketsRecovery();
   }
 
@@ -241,7 +238,7 @@ public class PartitionedRegionClearTest {
     Set<BucketRegion> buckets = setupBucketRegions(partitionedRegionDataStore, bucketAdvisor);
     when(partitionedRegion.getDataStore()).thenReturn(partitionedRegionDataStore);
 
-    List bucketsCleared = partitionedRegionClear.clearRegionLocal(regionEvent);
+    Set<Integer> bucketsCleared = partitionedRegionClear.clearRegionLocal(regionEvent);
 
     assertThat(bucketsCleared).hasSize(buckets.size());
 
@@ -254,25 +251,44 @@ public class PartitionedRegionClearTest {
   }
 
   @Test
-  public void clearRegionLocalRetriesClearOnLocalPrimaryBucketRegions() {
+  public void clearRegionLocalRetriesClearOnNonClearedLocalPrimaryBucketRegionsWhenMembershipChanges() {
     RegionEventImpl regionEvent = mock(RegionEventImpl.class);
     BucketAdvisor bucketAdvisor = mock(BucketAdvisor.class);
     when(bucketAdvisor.hasPrimary()).thenReturn(true);
     PartitionedRegionDataStore partitionedRegionDataStore = mock(PartitionedRegionDataStore.class);
     doNothing().when(partitionedRegionDataStore).lockBucketCreationForRegionClear();
     Set<BucketRegion> buckets = setupBucketRegions(partitionedRegionDataStore, bucketAdvisor);
+
+    final int numExtraBuckets = 3;
+    Set<BucketRegion> extraBuckets = new HashSet<>();
+    for (int i = 0; i < numExtraBuckets; i++) {
+      BucketRegion bucketRegion = mock(BucketRegion.class);
+      when(bucketRegion.getBucketAdvisor()).thenReturn(bucketAdvisor);
+      when(bucketRegion.size()).thenReturn(1);
+      when(bucketRegion.getId()).thenReturn(i + buckets.size());
+      extraBuckets.add(bucketRegion);
+    }
+    Set<BucketRegion> allBuckets = new HashSet<>(buckets);
+    allBuckets.addAll(extraBuckets);
+
+    // After the first try, add 3 extra buckets to the local bucket regions
+    when(partitionedRegionDataStore.getAllLocalBucketRegions()).thenReturn(buckets)
+        .thenReturn(allBuckets);
+    when(partitionedRegionDataStore.getAllLocalPrimaryBucketRegions()).thenReturn(buckets)
+        .thenReturn(allBuckets);
+
     when(partitionedRegion.getDataStore()).thenReturn(partitionedRegionDataStore);
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
     when(spyPartitionedRegionClear.getMembershipChange()).thenReturn(true).thenReturn(false);
 
-    List bucketsCleared = spyPartitionedRegionClear.clearRegionLocal(regionEvent);
+    Set<Integer> bucketsCleared = spyPartitionedRegionClear.clearRegionLocal(regionEvent);
 
-    int expectedClears = buckets.size() * 2; /* clear is called twice on each bucket */
+    int expectedClears = allBuckets.size();
     assertThat(bucketsCleared).hasSize(expectedClears);
 
     ArgumentCaptor<RegionEventImpl> argument = ArgumentCaptor.forClass(RegionEventImpl.class);
-    for (BucketRegion bucketRegion : buckets) {
-      verify(bucketRegion, times(2)).cmnClearRegion(argument.capture(), eq(false), eq(true));
+    for (BucketRegion bucketRegion : allBuckets) {
+      verify(bucketRegion, times(1)).cmnClearRegion(argument.capture(), eq(false), eq(true));
       RegionEventImpl bucketRegionEvent = argument.getValue();
       assertThat(bucketRegionEvent.getRegion()).isEqualTo(bucketRegion);
     }
@@ -372,7 +388,6 @@ public class PartitionedRegionClearTest {
     PartitionedRegionDataStore partitionedRegionDataStore = mock(PartitionedRegionDataStore.class);
     Set<BucketRegion> buckets = setupBucketRegions(partitionedRegionDataStore, bucketAdvisor);
     when(partitionedRegion.getDataStore()).thenReturn(partitionedRegionDataStore);
-    InternalDistributedMember member = mock(InternalDistributedMember.class);
 
     partitionedRegionClear.releaseClearLockLocal();
 
@@ -424,8 +439,7 @@ public class PartitionedRegionClearTest {
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
     doNothing().when(spyPartitionedRegionClear).acquireDistributedClearLock(any());
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent, false,
-        null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, false);
 
@@ -441,8 +455,7 @@ public class PartitionedRegionClearTest {
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
     doNothing().when(spyPartitionedRegionClear).acquireDistributedClearLock(any());
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, cacheWrite);
 
@@ -456,8 +469,7 @@ public class PartitionedRegionClearTest {
     PartitionedRegionClear spyPartitionedRegionClear = spy(partitionedRegionClear);
     doNothing().when(spyPartitionedRegionClear).acquireDistributedClearLock(any());
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, cacheWrite);
 
@@ -475,8 +487,7 @@ public class PartitionedRegionClearTest {
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
     doNothing().when(spyPartitionedRegionClear).obtainLockForClear(regionEvent);
     doNothing().when(spyPartitionedRegionClear).releaseLockForClear(regionEvent);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, cacheWrite);
 
@@ -495,8 +506,7 @@ public class PartitionedRegionClearTest {
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
     doNothing().when(spyPartitionedRegionClear).obtainLockForClear(regionEvent);
     doNothing().when(spyPartitionedRegionClear).releaseLockForClear(regionEvent);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, cacheWrite);
 
@@ -515,8 +525,7 @@ public class PartitionedRegionClearTest {
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
     doNothing().when(spyPartitionedRegionClear).obtainLockForClear(regionEvent);
     doNothing().when(spyPartitionedRegionClear).releaseLockForClear(regionEvent);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     spyPartitionedRegionClear.doClear(regionEvent, cacheWrite);
 
@@ -537,8 +546,7 @@ public class PartitionedRegionClearTest {
     doNothing().when(spyPartitionedRegionClear).assignAllPrimaryBuckets();
     doNothing().when(spyPartitionedRegionClear).obtainLockForClear(regionEvent);
     doNothing().when(spyPartitionedRegionClear).releaseLockForClear(regionEvent);
-    doReturn(Collections.EMPTY_LIST).when(spyPartitionedRegionClear).clearRegion(regionEvent,
-        cacheWrite, null);
+    doReturn(Collections.EMPTY_SET).when(spyPartitionedRegionClear).clearRegion(regionEvent);
 
     Throwable thrown =
         catchThrowable(() -> spyPartitionedRegionClear.doClear(regionEvent, cacheWrite));