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();