diff --git a/CHANGES.txt b/CHANGES.txt index 2b9cd5a408..244a72cab8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -26,6 +26,7 @@ Merged from 3.11.13: * Validate existence of DCs when repairing (CASSANDRA-17407) * dropping of a materialized view creates a snapshot with dropped- prefix (CASSANDRA-17415) Merged from 3.0: + * Fix URISyntaxException in nodetool with updated Java (CASSANDRA-17581) * Schema mutations may not be completed on drain (CASSANDRA-17524) * Fix data corruption in AbstractCompositeType due to static boolean byte buffers (CASSANDRA-14752) * Add procps dependency to RPM/Debian packages (CASSANDRA-17516) diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 101aab3478..0924155c04 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -105,7 +105,7 @@ import org.apache.cassandra.utils.NativeLibrary; */ public class NodeProbe implements AutoCloseable { - private static final String fmtUrl = "service:jmx:rmi:///jndi/rmi://[%s]:%d/jmxrmi"; + private static final String fmtUrl = "service:jmx:rmi:///jndi/rmi://%s:%d/jmxrmi"; private static final String ssObjName = "org.apache.cassandra.db:type=StorageService"; private static final int defaultPort = 7199; @@ -200,6 +200,12 @@ public class NodeProbe implements AutoCloseable */ protected void connect() throws IOException { + String host = this.host; + if (host.contains(":")) + { + // Use square brackets to surround IPv6 addresses to fix CASSANDRA-7669 and CASSANDRA-17581 + host = "[" + host + "]"; + } JMXServiceURL jmxUrl = new JMXServiceURL(String.format(fmtUrl, host, port)); Map env = new HashMap(); if (username != null)