This is an automated email from the ASF dual-hosted git repository.
khowe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 0ccf9fa GEODE-3299: throw CacheClosedException in
FunctionContext.getCache() (#975)
0ccf9fa is described below
commit 0ccf9fab8c7ccf109b91f17272c9e29f0854545e
Author: Kenneth Howe <[email protected]>
AuthorDate: Wed Oct 25 13:43:14 2017 -0700
GEODE-3299: throw CacheClosedException in FunctionContext.getCache() (#975)
* GEODE-3299: throw CacheClosedException when FunctionContext.getCache() ==
null
Gfsh functions handle CacheClosedException, whereas
NullPointerExceptions that resulted from returning null are not.
* GEODE-3299: Updates to ShowMissingDiskStoresFunction
Adjusted test in ShowMissingDiskStoresDUniotTest to expect the exception
instead of empty
results. Also removed redundant fail() assertions from the tests.
---
.../cache/execute/FunctionContextImpl.java | 6 ++++-
.../functions/GetRegionDescriptionFunction.java | 2 --
.../functions/ShowMissingDiskStoresFunction.java | 29 +++++++++++-----------
.../ShowMissingDiskStoresFunctionJUnitTest.java | 29 ++++------------------
4 files changed, 24 insertions(+), 42 deletions(-)
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionContextImpl.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionContextImpl.java
index 5fb52fc..985f12e 100755
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionContextImpl.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionContextImpl.java
@@ -15,6 +15,7 @@
package org.apache.geode.internal.cache.execute;
import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.CacheClosedException;
import org.apache.geode.cache.execute.Execution;
import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
@@ -99,7 +100,10 @@ public class FunctionContextImpl implements FunctionContext
{
}
@Override
- public Cache getCache() {
+ public Cache getCache() throws CacheClosedException {
+ if (cache == null) {
+ throw new CacheClosedException("FunctionContext does not have a valid
Cache");
+ }
return cache;
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
index 11c3678..afaeac5 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GetRegionDescriptionFunction.java
@@ -43,8 +43,6 @@ public class GetRegionDescriptionFunction extends
FunctionAdapter implements Int
} else {
context.getResultSender().lastResult(null);
}
- } catch (CacheClosedException e) {
- context.getResultSender().sendException(e);
} catch (Exception e) {
context.getResultSender().sendException(e);
}
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 2a1b746..656c0fd 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
@@ -23,7 +23,6 @@ import org.apache.geode.cache.execute.FunctionAdapter;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.internal.InternalEntity;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.partitioned.ColocatedRegionDetails;
@@ -65,23 +64,23 @@ public class ShowMissingDiskStoresFunction extends
FunctionAdapter implements In
}
}
}
+ } catch (Exception e) {
+ context.getResultSender().sendException(e);
+ }
- if (memberMissingIDs.isEmpty() && missingColocatedRegions.isEmpty()) {
- context.getResultSender().lastResult(null);
- } else {
- if (!memberMissingIDs.isEmpty()) {
- if (missingColocatedRegions.isEmpty()) {
- context.getResultSender().lastResult(memberMissingIDs);
- } else {
- context.getResultSender().sendResult(memberMissingIDs);
- }
- }
- if (!missingColocatedRegions.isEmpty()) {
- context.getResultSender().lastResult(missingColocatedRegions);
+ if (memberMissingIDs.isEmpty() && missingColocatedRegions.isEmpty()) {
+ context.getResultSender().lastResult(null);
+ } else {
+ if (!memberMissingIDs.isEmpty()) {
+ if (missingColocatedRegions.isEmpty()) {
+ context.getResultSender().lastResult(memberMissingIDs);
+ } else {
+ context.getResultSender().sendResult(memberMissingIDs);
}
}
- } catch (Exception e) {
- context.getResultSender().sendException(e);
+ if (!missingColocatedRegions.isEmpty()) {
+ context.getResultSender().lastResult(missingColocatedRegions);
+ }
}
}
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 7e6688a..235ae39 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
@@ -19,7 +19,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -30,7 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.cache.CacheClosedException;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
@@ -42,7 +41,6 @@ import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.mockito.ArgumentCaptor;
-import org.apache.geode.cache.Cache;
import org.apache.geode.cache.PartitionAttributes;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.ResultSender;
@@ -98,18 +96,13 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
}
@Test
- public void testExecute() {
+ public void testExecute() throws Exception {
List<?> results = null;
when(cache.getPersistentMemberManager()).thenReturn(memberManager);
smdsFunc.execute(context);
- try {
- results = resultSender.getResults();
- } catch (Throwable e) {
- e.printStackTrace();
- fail("Unexpected exception");
- }
+ results = resultSender.getResults();
assertNotNull(results);
}
@@ -118,7 +111,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
expectedException.expect(RuntimeException.class);
smdsFunc.execute(null);
- fail("Missing expected RuntimeException");
}
/**
@@ -126,15 +118,13 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
* {@link
org.apache.geode.management.internal.cli.functions.ShowMissingDiskStoresFunction#execute(org.apache.geode.cache.execute.FunctionContext)}.
*/
@Test
- public void testExecuteWithNullCacheInstanceHasEmptyResults() throws
Throwable {
+ public void testExecuteWithNullCacheInstanceThrowsCacheClosedException()
throws Throwable {
+ expectedException.expect(CacheClosedException.class);
context = new FunctionContextImpl(null, "testFunction", null,
resultSender);
List<?> results = null;
smdsFunc.execute(context);
results = resultSender.getResults();
- assertNotNull(results);
- assertEquals(1, results.size());
- assertNull(results.get(0));
}
@Test
@@ -195,8 +185,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
.equals("/diskStore2")) {
assertEquals("/diskStore1",
((PersistentMemberPattern) detailSet.toArray()[1]).getDirectory());
- } else {
- fail("Incorrect missing colocated region results");
}
}
@@ -229,8 +217,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
assertEquals("child2", ((ColocatedRegionDetails)
detailSet.toArray()[1]).getChild());
} else if (((ColocatedRegionDetails)
detailSet.toArray()[0]).getChild().equals("child2")) {
assertEquals("child1", ((ColocatedRegionDetails)
detailSet.toArray()[1]).getChild());
- } else {
- fail("Incorrect missing colocated region results");
}
}
@@ -277,8 +263,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
.equals("/diskStore2")) {
assertEquals("/diskStore1",
((PersistentMemberPattern)
detailSet.toArray()[1]).getDirectory());
- } else {
- fail("Incorrect missing colocated region results");
}
} else if (detailSet.toArray()[0] instanceof ColocatedRegionDetails) {
assertEquals(2, detailSet.toArray().length);
@@ -293,8 +277,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
} else {
fail("Incorrect missing colocated region results");
}
- } else {
- fail("Unexpected result type: " + detailSet.toArray()[0].getClass());
}
}
}
@@ -307,7 +289,6 @@ public class ShowMissingDiskStoresFunctionJUnitTest {
smdsFunc.execute(context);
List<?> results = resultSender.getResults();
- fail("Failed to catch expected RuntimeException");
}
@Test
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].