From ac56ab5fa1655a8e8ef4162ebbb7f3e138568dd3 Mon Sep 17 00:00:00 2001 From: jGauravGupta Date: Thu, 6 Jul 2017 15:25:27 +0530 Subject: [PATCH] PAYARA-1723 JMX Connector doesn't listen on all configured IPs when hostname is 0.0.0.0 or * --- .../admin/mbeanserver/ConnectorStarter.java | 7 +++++-- .../admin/mbeanserver/RMIConnectorStarter.java | 13 ++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/ConnectorStarter.java b/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/ConnectorStarter.java index bf2669076e3..140bb66e300 100644 --- a/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/ConnectorStarter.java +++ b/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/ConnectorStarter.java @@ -37,7 +37,8 @@ * only if the new code is made subject to such option by the copyright * holder. */ -// Portions Copyright [2017] [Payara Foundation and/or its affiliates] +// Portions Copyright [2016-2017] [Payara Foundation and/or its affiliates] + package org.glassfish.admin.mbeanserver; import org.glassfish.hk2.api.ServiceLocator; @@ -77,8 +78,10 @@ public JMXServiceURL getJMXServiceURL() { } public String hostname() throws UnknownHostException { - if (mHostName.equals("") || mHostName.equals("0.0.0.0")) { + if (mHostName.equals("")) { return Util.localhost(); + } else if (mHostName.equals("*")) { + return "0.0.0.0"; } else if (mHostName.contains(":") && !mHostName.startsWith("[")) { return "["+mHostName+"]"; } diff --git a/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/RMIConnectorStarter.java b/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/RMIConnectorStarter.java index 704eef6d63d..60b6eae19f8 100644 --- a/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/RMIConnectorStarter.java +++ b/nucleus/common/mbeanserver/src/main/java/org/glassfish/admin/mbeanserver/RMIConnectorStarter.java @@ -37,6 +37,8 @@ * only if the new code is made subject to such option by the copyright * holder. */ +// Portions Copyright [2016-2017] [Payara Foundation and/or its affiliates] + package org.glassfish.admin.mbeanserver; import java.io.File; @@ -137,7 +139,7 @@ public RMIConnectorStarter( } final boolean ENABLED = true; - mBindToSingleIP = ENABLED && !(address.equals("0.0.0.0") || address.equals("")); + mBindToSingleIP = ENABLED && !(address.equals("0.0.0.0") || address.equals("*")|| address.equals("")); final InetAddress inetAddr = getAddress(address); @@ -181,8 +183,9 @@ private static InetAddress getAddress(final String addrSpec) String actual = addrSpec; if (addrSpec.equals("localhost")) { actual = "127.0.0.1"; + } else if (addrSpec.equals("*")) { + actual = "0.0.0.0"; } - final InetAddress addr = InetAddress.getByName(actual); return addr; } @@ -204,10 +207,6 @@ private static void restoreRMIHostname(final String saved, } } - private static void debug(final Object o) { - System.out.println("" + o); - } - /** * Starts the RMI Registry , where the RMIServer would be exported. If this * is a multihomed machine then the Registry is bound to a specific IP address @@ -274,7 +273,7 @@ public JMXConnectorServer start() throws MalformedURLException, IOException, Unk final String name = "jmxrmi"; final String hostname = hostname(); - final Map env = new HashMap(); + final Map env = new HashMap<>(); env.put("jmx.remote.jndi.rebind", "true");