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 <kh...@pivotal.io>
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
['"commits@geode.apache.org" <commits@geode.apache.org>'].

Reply via email to