diff --git a/CHANGES.txt b/CHANGES.txt index dc7bcab297..a962994891 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.10 + * nodetool stopdaemon errors out (CASSANDRA-12646) * Split materialized view mutations on build to prevent OOM (CASSANDRA-12268) * mx4j does not work in 3.0.8 (CASSANDRA-12274) * Abort cqlsh copy-from in case of no answer after prolonged period of time (CASSANDRA-12740) diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 6a95e99135..394ce6ec15 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -25,6 +25,7 @@ import java.lang.management.MemoryUsage; import java.lang.management.RuntimeMXBean; import java.net.InetAddress; import java.net.UnknownHostException; +import java.rmi.ConnectException; import java.rmi.server.RMIClientSocketFactory; import java.rmi.server.RMISocketFactory; import java.util.AbstractMap; @@ -224,7 +225,7 @@ public class NodeProbe implements AutoCloseable mbeanServerConn, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class); } - private RMIClientSocketFactory getRMIClientSocketFactory() throws IOException + private RMIClientSocketFactory getRMIClientSocketFactory() { if (Boolean.parseBoolean(System.getProperty("ssl.enable"))) return new SslRMIClientSocketFactory(); @@ -234,7 +235,15 @@ public class NodeProbe implements AutoCloseable public void close() throws IOException { - jmxc.close(); + try + { + jmxc.close(); + } + catch (ConnectException e) + { + // result of 'stopdaemon' command - i.e. if close() call fails, the daemon is shutdown + System.out.println("Cassandra has shutdown."); + } } public int forceKeyspaceCleanup(int jobs, String keyspaceName, String... tables) throws IOException, ExecutionException, InterruptedException diff --git a/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java b/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java index a0af89ffd9..79a499a260 100644 --- a/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java +++ b/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java @@ -37,6 +37,5 @@ public class StopDaemon extends NodeToolCmd JVMStabilityInspector.inspectThrowable(e); // ignored } - System.out.println("Cassandra has shutdown."); } -} \ No newline at end of file +}