Repository: geode Updated Branches: refs/heads/develop 16832655d -> d4ece31fa
geode-2848: when found all the partitioned region is destroyed, add back the events Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/d4ece31f Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/d4ece31f Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/d4ece31f Branch: refs/heads/develop Commit: d4ece31fa23bbe74c8be0a82ff4b9d143bad79b3 Parents: 1683265 Author: zhouxh <[email protected]> Authored: Mon May 1 14:41:22 2017 -0700 Committer: zhouxh <[email protected]> Committed: Wed May 3 13:52:34 2017 -0700 ---------------------------------------------------------------------- .../cache/wan/parallel/ParallelGatewaySenderQueue.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/d4ece31f/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java index 9696b90..82e6f68 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java @@ -1724,6 +1724,8 @@ public class ParallelGatewaySenderQueue implements RegionQueue { ParallelQueueRemovalMessage pqrm = new ParallelQueueRemovalMessage(temp); pqrm.setRecipients(recipients); dm.putOutgoing(pqrm); + } else { + regionToDispatchedKeysMap.putAll(temp); } } // be somewhat tolerant of failures @@ -1773,8 +1775,10 @@ public class ParallelGatewaySenderQueue implements RegionQueue { private Set<InternalDistributedMember> getAllRecipients(GemFireCacheImpl cache, Map map) { Set recipients = new ObjectOpenHashSet(); for (Object pr : map.keySet()) { - recipients.addAll(((PartitionedRegion) (cache.getRegion((String) pr))).getRegionAdvisor() - .adviseDataStore()); + PartitionedRegion partitionedRegion = (PartitionedRegion) cache.getRegion((String) pr); + if (partitionedRegion != null && partitionedRegion.getRegionAdvisor() != null) { + recipients.addAll(partitionedRegion.getRegionAdvisor().adviseDataStore()); + } } return recipients; }
