This is an automated email from the ASF dual-hosted git repository. av pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push: new f9898b2 IGNITE-13495: fix ZookeeperDiscoveryImpl#getCoordinator() (#8313) f9898b2 is described below commit f9898b2d7c17d3ab40940dbfd46cdbcae68d5698 Author: Sergei Ryzhov <s.vi.ryz...@gmail.com> AuthorDate: Mon Oct 5 15:25:53 2020 +0300 IGNITE-13495: fix ZookeeperDiscoveryImpl#getCoordinator() (#8313) --- .../discovery/zk/internal/ZookeeperDiscoveryImpl.java | 8 +++++--- .../zk/internal/ZookeeperDiscoveryMiscTest.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java index 37ba43c..e9196f2 100644 --- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java +++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java @@ -4582,9 +4582,11 @@ public class ZookeeperDiscoveryImpl { /** */ public UUID getCoordinator() { - Map.Entry<Long, ZookeeperClusterNode> e = rtState.top.nodesByOrder.firstEntry(); - - return e != null ? e.getValue().id() : null; + return rtState.top.nodesByOrder.values().stream() + .filter(n -> !n.isClient() && !n.isDaemon()) + .map(ZookeeperClusterNode::id) + .findFirst() + .orElse(null); } /** */ diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java index 07a1c40..c644a4b 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java @@ -245,6 +245,24 @@ public class ZookeeperDiscoveryMiscTest extends ZookeeperDiscoverySpiTestBase { * @throws Exception If failed. */ @Test + public void testMbeanGetCoordinator() throws Exception { + startGrid(0); + startClientGrid(1); + IgniteEx srv2 = startGrid(2); + + ZookeeperDiscoverySpiMBean mbean = getMxBean(srv2.context().igniteInstanceName(), "SPIs", + ZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); + + stopGrid(0); + + assertEquals(mbean.getCoordinator(), srv2.localNode().id()); + assertEquals(mbean.getCoordinatorNodeFormatted(), String.valueOf(srv2.localNode())); + } + + /** + * @throws Exception If failed. + */ + @Test public void testClientNodesStatus() throws Exception { startGrid(0);