Repository: geode Updated Branches: refs/heads/feature/GEODE-2681 [created] ae8350bcb
GEODE-2681: refactoring to prevent yncronization hang on getAnyInstance Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/ae8350bc Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/ae8350bc Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/ae8350bc Branch: refs/heads/feature/GEODE-2681 Commit: ae8350bcb55e7eb217798f6472689be1eb85d4a4 Parents: 1156011 Author: Ken Howe <[email protected]> Authored: Tue Apr 18 10:43:51 2017 -0700 Committer: Ken Howe <[email protected]> Committed: Thu Apr 20 14:06:04 2017 -0700 ---------------------------------------------------------------------- .../ShowMissingDiskStoresFunction.java | 9 +- .../ShowMissingDiskStoresFunctionJUnitTest.java | 104 +++++++------------ 2 files changed, 41 insertions(+), 72 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/ae8350bc/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 a2812fa..589c98d 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 @@ -36,7 +36,7 @@ import org.apache.geode.internal.cache.persistence.PersistentMemberPattern; public class ShowMissingDiskStoresFunction extends FunctionAdapter implements InternalEntity { protected Cache getCache() { - return CacheFactory.getAnyInstance(); + return GemFireCacheImpl.getInstance(); } @Override @@ -50,12 +50,11 @@ public class ShowMissingDiskStoresFunction extends FunctionAdapter implements In try { final Cache cache = getCache(); - if (cache instanceof InternalCache) { - final InternalCache gemfireCache = (InternalCache) cache; + if (cache != null) { + final GemFireCacheImpl gfci = (GemFireCacheImpl) cache; - final DistributedMember member = gemfireCache.getMyId(); + final DistributedMember member = gfci.getMyId(); - GemFireCacheImpl gfci = GemFireCacheImpl.getInstance(); if (gfci != null && !gfci.isClosed()) { // Missing DiskStores PersistentMemberManager mm = gfci.getPersistentMemberManager(); http://git-wip-us.apache.org/repos/asf/geode/blob/ae8350bc/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 1cfa242..a2c9c90 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 @@ -107,14 +107,14 @@ public class ShowMissingDiskStoresFunctionJUnitTest { GemFireCacheImpl.setInstanceForTests(oldCacheInstance); } - private class TestSPRFFunc1 extends ShowMissingDiskStoresFunction { + private class TestSMDSFFunc1 extends ShowMissingDiskStoresFunction { @Override protected Cache getCache() { return null; } } - private class TestSPRFFunc2 extends ShowMissingDiskStoresFunction { + private class TestSMDSFFunc2 extends ShowMissingDiskStoresFunction { @Override protected Cache getCache() { return cache; @@ -127,22 +127,22 @@ public class ShowMissingDiskStoresFunctionJUnitTest { */ @Test public final void testGetCache() { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); - assertTrue(rff.getCache() instanceof Cache); + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); + assertTrue(smdsFunc.getCache() instanceof Cache); } /** * Test method for - * {@link org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}. + * {@link ShowMissingDiskStoresFunction#execute(FunctionContext)}. */ @Test public final void testExecute() { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); - rff.execute(context); + smdsFunc.execute(context); try { results = resultSender.getResults(); } catch (Throwable e) { @@ -160,8 +160,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { public final void testExecuteWithNullContextThrowsRuntimeException() { expectedException.expect(RuntimeException.class); - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); - rff.execute(null); + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); + smdsFunc.execute(null); fail("Missing expected RuntimeException"); } @@ -170,17 +170,12 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * {@link org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}. */ @Test - public final void testExecuteWithNullCacheInstanceHasEmptyResults() { - TestSPRFFunc1 rff = new TestSPRFFunc1(); + public final void testExecuteWithNullCacheInstanceHasEmptyResults() throws Throwable { + TestSMDSFFunc1 testSMDSFunc = new TestSMDSFFunc1(); List<?> results = null; - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + testSMDSFunc.execute(context); + results = resultSender.getResults(); assertNotNull(results); assertEquals(1, results.size()); assertNull(results.get(0)); @@ -191,20 +186,15 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * {@link org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}. */ @Test - public final void testExecuteWithNullGFCIResultValueIsNull() { - TestSPRFFunc2 rff = new TestSPRFFunc2(); + public final void testExecuteWithNullGFCIResultValueIsNull() throws Throwable { + TestSMDSFFunc2 testSMDSFunc = new TestSMDSFFunc2(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); GemFireCacheImpl.setInstanceForTests(null); - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + testSMDSFunc.execute(context); + results = resultSender.getResults(); assertNotNull(results); assertEquals(1, results.size()); assertNull(results.get(0)); @@ -215,19 +205,14 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * {@link org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}. */ @Test - public final void testExecuteWhenGFCIClosedResultValueIsNull() { - TestSPRFFunc2 rff = new TestSPRFFunc2(); + public final void testExecuteWhenGFCIClosedResultValueIsNull() throws Throwable { + TestSMDSFFunc2 testSMDSFunc = new TestSMDSFFunc2(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); when(((GemFireCacheImpl) cache).isClosed()).thenReturn(true); - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + testSMDSFunc.execute(context); + results = resultSender.getResults(); assertNotNull(results); } @@ -238,8 +223,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * @throws UnknownHostException */ @Test - public final void testExecuteReturnsMissingDiskStores() throws UnknownHostException { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); + public final void testExecuteReturnsMissingDiskStores() throws Throwable { + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); @@ -255,13 +240,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { mapMember1.put("member1", regions1); when(memberManager.getWaitingRegions()).thenReturn(mapMember1); - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + smdsFunc.execute(context); + results = resultSender.getResults(); assertNotNull(results); assertEquals(1, results.size()); Set<?> detailSet = (Set<?>) results.get(0); @@ -286,8 +266,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * {@link org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}. */ @Test - public final void testExecuteReturnsMissingColocatedRegions() { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); + public final void testExecuteReturnsMissingColocatedRegions() throws Throwable { + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); @@ -301,13 +281,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { when(pr1.getMissingColocatedChildren()).thenReturn(missing1); when(pr1.getFullPath()).thenReturn("/pr1"); - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + smdsFunc.execute(context); + results = resultSender.getResults(); assertEquals(1, results.size()); Set<?> detailSet = (Set<?>) results.get(0); assertEquals(2, detailSet.toArray().length); @@ -332,8 +307,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { * @throws UnknownHostException */ @Test - public final void testExecuteReturnsMissingStoresAndRegions() throws UnknownHostException { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); + public final void testExecuteReturnsMissingStoresAndRegions() throws Throwable { + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); List<?> results = null; when(cache.getPersistentMemberManager()).thenReturn(memberManager); @@ -358,13 +333,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { when(pr1.getMissingColocatedChildren()).thenReturn(missing1); when(pr1.getFullPath()).thenReturn("/pr1"); - rff.execute(context); - try { - results = resultSender.getResults(); - } catch (Throwable e) { - e.printStackTrace(); - fail("Unexpected exception"); - } + smdsFunc.execute(context); + results = resultSender.getResults(); assertEquals(2, results.size()); for (Object result : results) { Set<?> detailSet = (Set<?>) result; @@ -412,11 +382,11 @@ public class ShowMissingDiskStoresFunctionJUnitTest { public final void testExecuteCatchesExceptions() throws Throwable { expectedException.expect(RuntimeException.class); - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); when(cache.getPersistentMemberManager()).thenThrow(new RuntimeException()); - rff.execute(context); + smdsFunc.execute(context); List<?> results = resultSender.getResults(); fail("Failed to catch expected RuntimeException"); } @@ -428,8 +398,8 @@ public class ShowMissingDiskStoresFunctionJUnitTest { */ @Test public final void testGetId() { - ShowMissingDiskStoresFunction rff = new ShowMissingDiskStoresFunction(); - assertEquals(ShowMissingDiskStoresFunction.class.getName(), rff.getId()); + ShowMissingDiskStoresFunction smdsFunc = new ShowMissingDiskStoresFunction(); + assertEquals(ShowMissingDiskStoresFunction.class.getName(), smdsFunc.getId()); } private static class TestResultSender implements ResultSender {
