This is an automated email from the ASF dual-hosted git repository.

mivanac 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 1714cb3  GEODE-8742: fix list gateways command when dispatcher-threads 
is set … (#5803)
1714cb3 is described below

commit 1714cb3c03f8319f68729382714ff366b7ca9cb6
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Dec 7 10:27:52 2020 +0100

    GEODE-8742: fix list gateways command when dispatcher-threads is set … 
(#5803)
    
    * GEODE-8742: fix list gateways command when dispatcher-threads is set to 1
    
    * empty commit to re-launch CI
    
    * using CommandStringBuilder instead of hard-coding command
    
    * small test change
    
    * empty commit to re-launch CI
    
    * empty commit to re-launch CI
---
 .../internal/beans/GatewaySenderMBeanBridge.java   | 18 ++++++++++---
 .../wancommand/ListGatewaysCommandDUnitTest.java   | 30 ++++++++++++++++++++++
 2 files changed, 44 insertions(+), 4 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/beans/GatewaySenderMBeanBridge.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/beans/GatewaySenderMBeanBridge.java
index 7eda2b4..c07802b 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/beans/GatewaySenderMBeanBridge.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/beans/GatewaySenderMBeanBridge.java
@@ -324,10 +324,20 @@ public class GatewaySenderMBeanBridge {
         }
       }
     } else {
-      ConcurrentSerialGatewaySenderEventProcessor cProc =
-          (ConcurrentSerialGatewaySenderEventProcessor) 
((AbstractGatewaySender) sender)
-              .getEventProcessor();
-      for (SerialGatewaySenderEventProcessor lProc : cProc.getProcessors()) {
+      if (getDispatcherThreads() > 1) {
+        ConcurrentSerialGatewaySenderEventProcessor cProc =
+            (ConcurrentSerialGatewaySenderEventProcessor) 
((AbstractGatewaySender) sender)
+                .getEventProcessor();
+        for (SerialGatewaySenderEventProcessor lProc : cProc.getProcessors()) {
+          if (lProc.getDispatcher() != null && 
lProc.getDispatcher().isConnectedToRemote()) {
+            this.dispatcher = lProc.getDispatcher();
+            return true;
+          }
+        }
+      } else {
+        SerialGatewaySenderEventProcessor lProc =
+            (SerialGatewaySenderEventProcessor) ((AbstractGatewaySender) 
sender)
+                .getEventProcessor();
         if (lProc.getDispatcher() != null && 
lProc.getDispatcher().isConnectedToRemote()) {
           this.dispatcher = lProc.getDispatcher();
           return true;
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/ListGatewaysCommandDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/ListGatewaysCommandDUnitTest.java
index ba1de8e..b90159c 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/ListGatewaysCommandDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/ListGatewaysCommandDUnitTest.java
@@ -35,6 +35,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.management.GatewayReceiverMXBean;
+import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
 import org.apache.geode.management.internal.i18n.CliStrings;
 import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
@@ -450,6 +451,35 @@ public class ListGatewaysCommandDUnitTest implements 
Serializable {
         
.hasRowSize(expectedGwReceiverSectionSize).hasColumns().contains("Port", 
"Member");
   }
 
+  @Test
+  public void testListGatewaysWithOneDispatcherThread() {
+    String command = new CommandStringBuilder(CliStrings.CREATE_GATEWAYSENDER)
+        .addOption(CliStrings.CREATE_GATEWAYSENDER__ID, "ln_Serial")
+        .addOption(CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID, 
"2")
+        .addOption(CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS, "1")
+        .getCommandString();
+
+    int lnPort = locatorSite1.getPort();
+
+    // setup servers in Site #1 (London)
+    server1 = clusterStartupRule.startServerVM(3, lnPort);
+    server2 = clusterStartupRule.startServerVM(4, lnPort);
+    server3 = clusterStartupRule.startServerVM(5, lnPort);
+
+    gfsh.executeAndAssertThat(command).statusIsSuccess();
+
+    gfsh.executeAndAssertThat(CliStrings.LIST_GATEWAY).statusIsSuccess()
+        .hasTableSection("gatewaySenders")
+        .hasRowSize(3).hasColumn("Status").contains("Running, not Connected");
+
+    gfsh.executeAndAssertThat(
+        CliStrings.LIST_GATEWAY + " --" + 
CliStrings.LIST_GATEWAY__SHOW_SENDERS_ONLY)
+        .statusIsSuccess()
+        .hasNoSection("gatewayReceivers")
+        .hasTableSection("gatewaySenders")
+        .hasRowSize(3).hasColumn("Status").contains("Running, not Connected");
+  }
+
   void setupClusters() {
     Integer lnPort = locatorSite1.getPort();
     Integer nyPort = locatorSite2.getPort();

Reply via email to