You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "xiaojian zhou (JIRA)" <ji...@apache.org> on 2019/03/13 01:08:00 UTC

[jira] [Created] (GEODE-6518) if the region's data policy is empty, create jdbc-mapping will failed with NPE

xiaojian zhou created GEODE-6518:
------------------------------------

             Summary: if the region's data policy is empty, create jdbc-mapping will failed with NPE
                 Key: GEODE-6518
                 URL: https://issues.apache.org/jira/browse/GEODE-6518
             Project: Geode
          Issue Type: Bug
          Components: jdbc
            Reporter: xiaojian zhou


{noformat}
We never had a test case to create a region on one member with data, and on another member as accessor (i.e. data policy is empty). Then create a jdbc-mapping. This is a valid use case.

Apply the following diff, it will modify the test case to test above scenario.

diff --git a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
index 06043f1657..ccb79b56c6 100644
--- a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
+++ b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
@@ -119,7 +119,7 @@ public class CreateMappingCommandDUnitTest {
     server1 = startupRule.startServerVM(1, locator.getPort());
     server2 = startupRule.startServerVM(2, TEST_GROUP1, locator.getPort());
     server3 = startupRule.startServerVM(3, TEST_GROUP2, locator.getPort());
-    server4 = startupRule.startServerVM(4, TEST_GROUP1 + "," + TEST_GROUP2, locator.getPort());
+    server4 = startupRule.startServerVM(4, "Gester", locator.getPort());

     gfsh.connectAndVerify(locator);
     setupDatabase();
@@ -196,10 +196,10 @@ public class CreateMappingCommandDUnitTest {
         .statusIsSuccess();
   }

-  private void setupGroupPartition(String regionName, String groupNames) {
+  private void setupGroupPartition(String regionName, String groupNames, boolean isAccessor) {
     gfsh.executeAndAssertThat(
-        "create region --name=" + regionName + " --type=PARTITION --groups=" + groupNames)
-        .statusIsSuccess();
+        "create region --name=" + regionName + (isAccessor ? " --type=PARTITION_PROXY"
+            : " --type=PARTITION") + " --groups=" + groupNames).statusIsSuccess();
   }

   private void setupAsyncEventQueue(String regionName) {
@@ -346,7 +346,7 @@ public class CreateMappingCommandDUnitTest {
   @Test
   public void createMappingPartitionedUpdatesServiceAndClusterConfigForServerGroup() {
     String regionName = GROUP2_REGION;
-    setupGroupPartition(regionName, TEST_GROUP2);
+    setupGroupPartition(regionName, TEST_GROUP2, false);
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
     csb.addOption(REGION_NAME, regionName);
     csb.addOption(DATA_SOURCE_NAME, "connection");
@@ -424,7 +424,8 @@ public class CreateMappingCommandDUnitTest {
   @Test
   public void createMappingPartitionedUpdatesServiceAndClusterConfigForMultiServerGroup() {
     String regionName = "/" + GROUP1_GROUP2_REGION;
-    setupGroupPartition(regionName, TEST_GROUP1 + "," + TEST_GROUP2);
+    setupGroupPartition(regionName, TEST_GROUP1, false);
+    setupGroupPartition(regionName, TEST_GROUP2, true);
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
     csb.addOption(REGION_NAME, regionName);
     csb.addOption(DATA_SOURCE_NAME, "connection");

{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)