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();