You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2020/03/09 17:46:21 UTC
[geode] 01/01: GEODE-7857: PR.clear's event id should be created
and used in BR
This is an automated email from the ASF dual-hosted git repository.
zhouxj pushed a commit to branch feature/GEODE-7857
in repository https://gitbox.apache.org/repos/asf/geode.git
commit cc32e722197037d408509ea13b49087ca898455f
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Mon Mar 9 10:44:49 2020 -0700
GEODE-7857: PR.clear's event id should be created and used in BR
---
.../cache/PartitionedRegionPersistentClearDUnitTest.java | 2 +-
.../geode/codeAnalysis/sanctionedDataSerializables.txt | 4 ++--
.../org/apache/geode/internal/cache/PartitionedRegion.java | 6 +++---
.../geode/internal/cache/partitioned/ClearPRMessage.java | 12 ++++++++----
4 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionPersistentClearDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionPersistentClearDUnitTest.java
index 847699b..c758446 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionPersistentClearDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionPersistentClearDUnitTest.java
@@ -21,6 +21,6 @@ import org.apache.geode.cache.RegionShortcut;
public class PartitionedRegionPersistentClearDUnitTest extends PartitionedRegionClearDUnitTest {
protected RegionShortcut getRegionShortCut() {
- return RegionShortcut.PARTITION_REDUNDANT_PERSISTENT_OVERFLOW;
+ return RegionShortcut.PARTITION_REDUNDANT_PERSISTENT;
}
}
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 cacc46b..53be9e8 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
@@ -1436,8 +1436,8 @@ fromData,27
toData,27
org/apache/geode/internal/cache/partitioned/ClearPRMessage,2
-fromData,19
-toData,36
+fromData,30
+toData,44
org/apache/geode/internal/cache/partitioned/ClearPRMessage$ClearReplyMessage,2
fromData,17
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 9f61202..9d5322b 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -2162,7 +2162,7 @@ public class PartitionedRegion extends LocalRegion
}
// create ClearPRMessage per bucket
- List<ClearPRMessage> clearMsgList = createClearPRMessages();
+ List<ClearPRMessage> clearMsgList = createClearPRMessages(regionEvent.getEventId());
for (ClearPRMessage clearPRMessage : clearMsgList) {
int bucketId = clearPRMessage.getBucketId();
checkReadiness();
@@ -2334,10 +2334,10 @@ public class PartitionedRegion extends LocalRegion
}
}
- List<ClearPRMessage> createClearPRMessages() {
+ List<ClearPRMessage> createClearPRMessages(EventID eventID) {
ArrayList<ClearPRMessage> clearMsgList = new ArrayList<>();
for (int bucketId = 0; bucketId < this.totalNumberOfBuckets; bucketId++) {
- ClearPRMessage clearPRMessage = new ClearPRMessage(bucketId);
+ ClearPRMessage clearPRMessage = new ClearPRMessage(bucketId, eventID);
clearMsgList.add(clearPRMessage);
}
return clearMsgList;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/ClearPRMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/ClearPRMessage.java
index 9fa8057..cc01920 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/ClearPRMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/ClearPRMessage.java
@@ -56,6 +56,8 @@ public class ClearPRMessage extends PartitionMessageWithDirectReply {
private Integer bucketId;
+ private EventID eventID;
+
public static final String BUCKET_NON_PRIMARY_MESSAGE =
"The bucket region on target member is no longer primary";
public static final String EXCEPTION_THROWN_DURING_CLEAR_OPERATION =
@@ -71,8 +73,9 @@ public class ClearPRMessage extends PartitionMessageWithDirectReply {
*/
public ClearPRMessage() {}
- public ClearPRMessage(int bucketId) {
+ public ClearPRMessage(int bucketId, EventID eventID) {
this.bucketId = bucketId;
+ this.eventID = eventID;
}
public void initMessage(PartitionedRegion region, Set<InternalDistributedMember> recipients,
@@ -119,6 +122,7 @@ public class ClearPRMessage extends PartitionMessageWithDirectReply {
} else {
InternalDataSerializer.writeSignedVL(bucketId, out);
}
+ DataSerializer.writeObject(this.eventID, out);
}
@Override
@@ -126,6 +130,7 @@ public class ClearPRMessage extends PartitionMessageWithDirectReply {
throws IOException, ClassNotFoundException {
super.fromData(in, context);
this.bucketId = (int) InternalDataSerializer.readSignedVL(in);
+ this.eventID = (EventID) DataSerializer.readObject(in);
}
@Override
@@ -168,9 +173,8 @@ public class ClearPRMessage extends PartitionMessageWithDirectReply {
throw new ForceReattemptException(BUCKET_NON_PRIMARY_MESSAGE);
}
try {
- RegionEventImpl regionEvent = new RegionEventImpl();
- regionEvent.setOperation(Operation.REGION_CLEAR);
- regionEvent.setRegion(bucketRegion);
+ RegionEventImpl regionEvent = new RegionEventImpl(bucketRegion, Operation.REGION_CLEAR, null,
+ false, region.getMyId(), eventID);
bucketRegion.cmnClearRegion(regionEvent, true, true);
} catch (PartitionOfflineException poe) {
logger.info(