GEODE-2681: refactoring to prevent synchronization hang on getAnyInstance Take advantage of recent refactoring to use the InternalCache interface API instead of GemFireCahceImpl.
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/fdcd53e1 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/fdcd53e1 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/fdcd53e1 Branch: refs/heads/feature/GEODE-2681 Commit: fdcd53e17fb33da2d8574631ed436fa050b8fc0d Parents: 2d842cd Author: Ken Howe <[email protected]> Authored: Tue Apr 18 10:43:51 2017 -0700 Committer: Ken Howe <[email protected]> Committed: Thu Apr 20 15:20:40 2017 -0700 ---------------------------------------------------------------------- .../cli/functions/ShowMissingDiskStoresFunction.java | 15 ++++++--------- .../ShowMissingDiskStoresFunctionJUnitTest.java | 3 +-- 2 files changed, 7 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/fdcd53e1/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction.java index 589c98d..dcae776 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction.java @@ -35,7 +35,7 @@ import org.apache.geode.internal.cache.persistence.PersistentMemberPattern; public class ShowMissingDiskStoresFunction extends FunctionAdapter implements InternalEntity { - protected Cache getCache() { + protected InternalCache getCache() { return GemFireCacheImpl.getInstance(); } @@ -48,16 +48,14 @@ public class ShowMissingDiskStoresFunction extends FunctionAdapter implements In throw new RuntimeException(); } try { - final Cache cache = getCache(); + final InternalCache cache = getCache(); if (cache != null) { - final GemFireCacheImpl gfci = (GemFireCacheImpl) cache; + if (cache != null && !cache.isClosed()) { + final DistributedMember member = cache.getMyId(); - final DistributedMember member = gfci.getMyId(); - - if (gfci != null && !gfci.isClosed()) { // Missing DiskStores - PersistentMemberManager mm = gfci.getPersistentMemberManager(); + PersistentMemberManager mm = cache.getPersistentMemberManager(); Map<String, Set<PersistentMemberID>> waitingRegions = mm.getWaitingRegions(); for (Map.Entry<String, Set<PersistentMemberID>> entry : waitingRegions.entrySet()) { for (PersistentMemberID id : entry.getValue()) { @@ -65,7 +63,7 @@ public class ShowMissingDiskStoresFunction extends FunctionAdapter implements In } } // Missing colocated regions - Set<PartitionedRegion> prs = gfci.getPartitionedRegions(); + Set<PartitionedRegion> prs = ((GemFireCacheImpl) cache).getPartitionedRegions(); for (PartitionedRegion pr : prs) { List<String> missingChildRegions = pr.getMissingColocatedChildren(); for (String child : missingChildRegions) { @@ -74,7 +72,6 @@ public class ShowMissingDiskStoresFunction extends FunctionAdapter implements In } } } - } if (memberMissingIDs.isEmpty() && missingColocatedRegions.isEmpty()) { http://git-wip-us.apache.org/repos/asf/geode/blob/fdcd53e1/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunctionJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunctionJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunctionJUnitTest.java index a2c9c90..4291c07 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunctionJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunctionJUnitTest.java @@ -132,8 +132,7 @@ public class ShowMissingDiskStoresFunctionJUnitTest { } /** - * Test method for - * {@link ShowMissingDiskStoresFunction#execute(FunctionContext)}. + * Test method for {@link ShowMissingDiskStoresFunction#execute(FunctionContext)}. */ @Test public final void testExecute() {
