Repository: geode
Updated Branches:
  refs/heads/develop 7528f1290 -> dd178413f


GEODE-3304: when colocated child bucket is destroyed, it should not impact its
parent bucket's creation.

This closes #706


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/dd178413
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/dd178413
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/dd178413

Branch: refs/heads/develop
Commit: dd178413fdd9660914f90880b03a6586cc6f6dbb
Parents: 7528f12
Author: zhouxh <gz...@pivotal.io>
Authored: Wed Aug 9 16:55:41 2017 -0700
Committer: zhouxh <gz...@pivotal.io>
Committed: Fri Aug 11 11:02:35 2017 -0700

----------------------------------------------------------------------
 .../internal/cache/PartitionedRegionDataStore.java      | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/dd178413/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
index a63a7dd..95e6598 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
@@ -2881,8 +2881,16 @@ public class PartitionedRegionDataStore implements 
HasCachePerfStats {
         }
         if ((isDiskRecovery || pr.isInitialized())
             && (pr.getDataStore().isColocationComplete(bucketId))) {
-          grab = pr.getDataStore().grabFreeBucketRecursively(bucketId, pr, 
moveSource,
-              forceCreation, replaceOffineData, isRebalance, 
creationRequestor, isDiskRecovery);
+          try {
+            grab = pr.getDataStore().grabFreeBucketRecursively(bucketId, pr, 
moveSource,
+                forceCreation, replaceOffineData, isRebalance, 
creationRequestor, isDiskRecovery);
+          } catch (RegionDestroyedException rde) {
+            if (logger.isDebugEnabled()) {
+              logger.debug("Failed to grab, colocated region for bucketId = 
{}{}{} is destroyed.",
+                  this.partitionedRegion.getPRId(), 
PartitionedRegion.BUCKET_ID_SEPARATOR,
+                  bucketId);
+            }
+          }
           if (!grab.nowExists()) {
             if (logger.isDebugEnabled()) {
               logger.debug("Failed grab for bucketId = {}{}{}", 
this.partitionedRegion.getPRId(),

Reply via email to