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 <[email protected]>
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();