This is an automated email from the ASF dual-hosted git repository. symat pushed a commit to branch branch-3.5 in repository https://gitbox.apache.org/repos/asf/zookeeper.git
commit 90322afd4301af461175ef2f0fb1539593fb2f77 Author: Mohammad Arshad <[email protected]> AuthorDate: Tue Mar 2 11:37:47 2021 +0530 ZOOKEEPER-3877: JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean …quare bracket same as LocalPeerBean Author: Mohammad Arshad <[email protected]> Reviewers: Enrico Olivelli <[email protected]> Closes #1493 from arshadmohammad/ZOOKEEPER-3877-master (cherry picked from commit 425ee189dcf952fd7a2a38df375ec245dcdfbfc6) Signed-off-by: Mohammad Arshad <[email protected]> (cherry picked from commit a51b222de42fd0d0591dd8eda39a9045324a11fc) --- .../apache/zookeeper/server/quorum/RemotePeerBean.java | 12 ++++++------ .../zookeeper/server/quorum/RemotePeerBeanTest.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java index 285f11a85..573859eb3 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/RemotePeerBean.java @@ -18,11 +18,12 @@ package org.apache.zookeeper.server.quorum; +import static org.apache.zookeeper.common.NetUtils.formatInetAddr; import org.apache.zookeeper.jmx.ZKMBeanInfo; /** * A remote peer bean only provides limited information about the remote peer, - * and the peer cannot be managed remotely. + * and the peer cannot be managed remotely. */ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { private QuorumPeer.QuorumServer peer; @@ -45,19 +46,18 @@ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { } public String getQuorumAddress() { - return peer.addr.getHostString()+":"+peer.addr.getPort(); + return formatInetAddr(peer.addr); } public String getElectionAddress() { - return peer.electionAddr.getHostString() + ":" + peer.electionAddr.getPort(); + return formatInetAddr(peer.electionAddr); } public String getClientAddress() { if (null == peer.clientAddr) { return ""; } - return peer.clientAddr.getHostString() + ":" - + peer.clientAddr.getPort(); + return formatInetAddr(peer.clientAddr); } public String getLearnerType() { @@ -68,5 +68,5 @@ public class RemotePeerBean implements RemotePeerMXBean,ZKMBeanInfo { public boolean isLeader() { return localPeer.isLeader(peer.getId()); } - + } diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java index 08dff63fb..f4457a762 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/RemotePeerBeanTest.java @@ -61,4 +61,19 @@ public class RemotePeerBeanTest { assertFalse(remotePeerBean.isLeader()); } + @Test + public void testHostPortReturnedWhenIPIsIPV6() { + QuorumPeer.QuorumServer quorumServerMock = mock(QuorumPeer.QuorumServer.class); + InetSocketAddress address = new InetSocketAddress("127::1", 2181); + quorumServerMock.clientAddr = address; + quorumServerMock.electionAddr = address; + quorumServerMock.addr = address; + QuorumPeer peerMock = mock(QuorumPeer.class); + RemotePeerBean remotePeerBean = new RemotePeerBean(peerMock, quorumServerMock); + String expectedHostPort = "[127:0:0:0:0:0:0:1]:2181"; + assertEquals(expectedHostPort, remotePeerBean.getClientAddress()); + assertEquals(expectedHostPort, remotePeerBean.getElectionAddress()); + assertEquals(expectedHostPort, remotePeerBean.getQuorumAddress()); + } + }
