Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 01C4518115 for ; Wed, 5 Aug 2015 22:07:13 +0000 (UTC) Received: (qmail 28347 invoked by uid 500); 5 Aug 2015 22:07:12 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 28221 invoked by uid 500); 5 Aug 2015 22:07:12 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 28126 invoked by uid 99); 5 Aug 2015 22:07:12 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Aug 2015 22:07:12 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3C5A2DFD87; Wed, 5 Aug 2015 22:07:12 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: yukim@apache.org To: commits@cassandra.apache.org Date: Wed, 05 Aug 2015 22:07:14 -0000 Message-Id: <77d2dccdeb11492e8d7142068f6f53da@git.apache.org> In-Reply-To: <7eb9e4cb9359482da4e447252cb277f5@git.apache.org> References: <7eb9e4cb9359482da4e447252cb277f5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [03/10] cassandra git commit: Fix nodetool info error when the node is not joined Fix nodetool info error when the node is not joined patch by yukim; reviewed by stefania for CASSANDRA-9031 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/20f12e97 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/20f12e97 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/20f12e97 Branch: refs/heads/cassandra-3.0 Commit: 20f12e97446eee55461a8d3512a94389a67e79ee Parents: 1a2c1bc Author: Yuki Morishita Authored: Wed Aug 5 15:58:36 2015 -0500 Committer: Yuki Morishita Committed: Wed Aug 5 16:01:53 2015 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/tools/NodeProbe.java | 16 ++------------- .../org/apache/cassandra/tools/NodeTool.java | 21 ++++++++++++++------ 3 files changed, 18 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index de7cfa8..9a475ea 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,6 +12,7 @@ * Remove repair snapshot leftover on startup (CASSANDRA-7357) * Use random nodes for batch log when only 2 racks (CASSANDRA-8735) * Ensure atomicity inside thrift and stream session (CASSANDRA-7757) + * Fix nodetool info error when the node is not joined (CASSANDRA-9031) Merged from 2.0: * Don't cast expected bf size to an int (CASSANDRA-9959) * Log when messages are dropped due to cross_node_timeout (CASSANDRA-9793) http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/src/java/org/apache/cassandra/tools/NodeProbe.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index d3bce4d..caa12c3 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -807,20 +807,8 @@ public class NodeProbe implements AutoCloseable public String getEndpoint() { - // Try to find the endpoint using the local token, doing so in a crazy manner - // to maintain backwards compatibility with the MBean interface - String stringToken = ssProxy.getTokens().get(0); - Map tokenToEndpoint = ssProxy.getTokenToEndpointMap(); - - for (Map.Entry pair : tokenToEndpoint.entrySet()) - { - if (pair.getKey().equals(stringToken)) - { - return pair.getValue(); - } - } - - throw new RuntimeException("Could not find myself in the endpoint list, something is very wrong! Is the Cassandra node fully started?"); + Map hostIdToEndpoint = ssProxy.getHostIdMap(); + return hostIdToEndpoint.get(ssProxy.getLocalHostId()); } public String getDataCenter() http://git-wip-us.apache.org/repos/asf/cassandra/blob/20f12e97/src/java/org/apache/cassandra/tools/NodeTool.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java index a2d4ead..6a7a930 100644 --- a/src/java/org/apache/cassandra/tools/NodeTool.java +++ b/src/java/org/apache/cassandra/tools/NodeTool.java @@ -463,13 +463,22 @@ public class NodeTool probe.getCacheMetric("CounterCache", "HitRate"), cacheService.getCounterCacheSavePeriodInSeconds()); - // Tokens - List tokens = probe.getTokens(); - if (tokens.size() == 1 || this.tokens) - for (String token : tokens) - System.out.printf("%-23s: %s%n", "Token", token); + // check if node is already joined, before getting tokens, since it throws exception if not. + if (probe.isJoined()) + { + // Tokens + List tokens = probe.getTokens(); + if (tokens.size() == 1 || this.tokens) + for (String token : tokens) + System.out.printf("%-23s: %s%n", "Token", token); + else + System.out.printf("%-23s: (invoke with -T/--tokens to see all %d tokens)%n", "Token", + tokens.size()); + } else - System.out.printf("%-23s: (invoke with -T/--tokens to see all %d tokens)%n", "Token", tokens.size()); + { + System.out.printf("%-23s: (node is not joined to the cluster)%n", "Token"); + } } /**