You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by es...@apache.org on 2019/12/17 01:07:09 UTC

[geode] 01/01: GEODE-7537: use dm.getCache instead of CacheFactory.getAnyInstance

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

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

commit 2a107d398f0d04a70e9292c0005ed56beef8ccce
Author: Eric Shu <es...@EricMacBookPro.local>
AuthorDate: Mon Dec 16 17:03:19 2019 -0800

    GEODE-7537: use dm.getCache instead of CacheFactory.getAnyInstance
---
 ...tewaySenderQueueEntrySynchronizationOperation.java | 19 +++++++------------
 .../wan/parallel/ParallelGatewaySenderQueue.java      | 12 +++++++-----
 2 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
index 08d1e5b..244c05a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderQueueEntrySynchronizationOperation.java
@@ -27,7 +27,6 @@ import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.DataSerializer;
 import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.wan.GatewayQueueEvent;
 import org.apache.geode.cache.wan.GatewaySender;
 import org.apache.geode.distributed.internal.ClusterDistributionManager;
@@ -41,6 +40,7 @@ import org.apache.geode.distributed.internal.ReplyProcessor21;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.InitialImageOperation;
+import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.InternalRegion;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.versions.VersionTag;
@@ -95,7 +95,7 @@ public class GatewaySenderQueueEntrySynchronizationOperation {
   }
 
   protected GemFireCacheImpl getCache() {
-    return (GemFireCacheImpl) CacheFactory.getAnyInstance();
+    return (GemFireCacheImpl) region.getDistributionManager().getCache();
   }
 
   private void initializeEntriesToSynchronize(
@@ -164,7 +164,7 @@ public class GatewaySenderQueueEntrySynchronizationOperation {
     }
 
     private Cache getCache() {
-      return CacheFactory.getAnyInstance();
+      return dmgr.getCache();
     }
   }
 
@@ -198,7 +198,7 @@ public class GatewaySenderQueueEntrySynchronizationOperation {
           logger.debug("{}: Providing synchronization region={}; entriesToSynchronize={}",
               getClass().getSimpleName(), this.regionPath, this.entriesToSynchronize);
         }
-        result = getSynchronizationEvents();
+        result = getSynchronizationEvents(dm.getCache());
       } catch (Throwable t) {
         replyException = new ReplyException(t);
       } finally {
@@ -218,15 +218,14 @@ public class GatewaySenderQueueEntrySynchronizationOperation {
       }
     }
 
-    private Object getSynchronizationEvents() {
+    private Object getSynchronizationEvents(InternalCache cache) {
       List<Map<String, GatewayQueueEvent>> results = new ArrayList<>();
       // Get the region
-      GemFireCacheImpl gfci = (GemFireCacheImpl) getCache();
-      LocalRegion region = (LocalRegion) gfci.getRegion(this.regionPath);
+      LocalRegion region = (LocalRegion) cache.getRegion(this.regionPath);
 
       // Add the appropriate GatewaySenderEventImpl from each GatewaySender for each entry
       Set<String> allGatewaySenderIds = region.getAllGatewaySenderIds();
-      for (GatewaySender sender : gfci.getAllGatewaySenders()) {
+      for (GatewaySender sender : cache.getAllGatewaySenders()) {
         if (allGatewaySenderIds.contains(sender.getId())) {
           for (GatewaySenderQueueEntrySynchronizationEntry entry : this.entriesToSynchronize) {
             Map<String, GatewayQueueEvent> resultForOneEntry = new HashMap<>();
@@ -243,10 +242,6 @@ public class GatewaySenderQueueEntrySynchronizationOperation {
       return results;
     }
 
-    private Cache getCache() {
-      return CacheFactory.getAnyInstance();
-    }
-
     @Override
     public int getDSFID() {
       return GATEWAY_SENDER_QUEUE_ENTRY_SYNCHRONIZATION_MESSAGE;
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 011bb5a..f0f481e 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
@@ -660,9 +660,10 @@ public class ParallelGatewaySenderQueue implements RegionQueue {
     boolean putDone = false;
     // Can this region ever be null? Should we work with regionName and not with region
     // instance.
-    // It can't be as put is happeing on the region and its still under process
+    // It can't be as put is happening on the region and its still under process
     GatewaySenderEventImpl value = (GatewaySenderEventImpl) object;
-    boolean isDREvent = isDREvent(value);
+
+    boolean isDREvent = isDREvent(sender.getCache(), value);
 
     Region region = value.getRegion();
     String regionPath = null;
@@ -924,8 +925,9 @@ public class ParallelGatewaySenderQueue implements RegionQueue {
     return prQ;
   }
 
-  private boolean isDREvent(GatewaySenderEventImpl event) {
-    return (event.getRegion() instanceof DistributedRegion) ? true : false;
+  private boolean isDREvent(InternalCache cache, GatewaySenderEventImpl event) {
+    Region region = cache.getRegion(event.getRegionPath());
+    return region instanceof DistributedRegion;
   }
 
   /**
@@ -1003,7 +1005,7 @@ public class ParallelGatewaySenderQueue implements RegionQueue {
         int bucketId = -1;
         Object key = null;
         if (event.getRegion() != null) {
-          if (isDREvent(event)) {
+          if (isDREvent(sender.getCache(), event)) {
             prQ = this.userRegionNameToshadowPRMap.get(event.getRegion().getFullPath());
             bucketId = event.getEventId().getBucketID();
             key = event.getEventId();