This is an automated email from the ASF dual-hosted git repository.
mmuzaf pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new b7eb323c5a Fix nodetool sjk dropping all arguments after the first one
b7eb323c5a is described below
commit b7eb323c5a6ca3f2f9f8e32574ddd37d8b802957
Author: Maxim Muzafarov <[email protected]>
AuthorDate: Wed Feb 18 14:58:49 2026 +0100
Fix nodetool sjk dropping all arguments after the first one
Patch by Maxim Muzafarov; reviewed by Dmitry Konstantinov for
CASSANDRA-21009
---
.../org/apache/cassandra/tools/nodetool/Sjk.java | 7 ++---
.../cassandra/tools/nodetool/mock/SjkMockTest.java | 31 +++++++++++++++++++++-
2 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/java/org/apache/cassandra/tools/nodetool/Sjk.java
b/src/java/org/apache/cassandra/tools/nodetool/Sjk.java
index 1f2d5db777..c117ed638b 100644
--- a/src/java/org/apache/cassandra/tools/nodetool/Sjk.java
+++ b/src/java/org/apache/cassandra/tools/nodetool/Sjk.java
@@ -86,10 +86,11 @@ public class Sjk extends AbstractCommand
{
// Consume all arguments and pass them to SJK.
assert commandSpec.userObject() instanceof Sjk;
- if (args.isEmpty())
- return true;
+ Sjk sjk = (Sjk) commandSpec.userObject();
+
+ while (!args.isEmpty())
+ sjk.args.add(args.pop());
- ((Sjk) commandSpec.userObject()).args.add(args.pop());
return true;
}
}
diff --git
a/test/unit/org/apache/cassandra/tools/nodetool/mock/SjkMockTest.java
b/test/unit/org/apache/cassandra/tools/nodetool/mock/SjkMockTest.java
index 836f85afb3..40cabcae77 100644
--- a/test/unit/org/apache/cassandra/tools/nodetool/mock/SjkMockTest.java
+++ b/test/unit/org/apache/cassandra/tools/nodetool/mock/SjkMockTest.java
@@ -48,9 +48,38 @@ public class SjkMockTest extends AbstractNodetoolMock
@Test
public void testSjkTtop()
{
- ToolRunner.ToolResult result = invokeNodetool("sjk", "hh",
"--top-number", "10", "--live");
+ ToolRunner.ToolResult result = invokeNodetool("sjk", "hh",
"--top-number", "10000", "--live");
result.assertOnCleanExit();
assertThat(result.getStdout()).contains(" # Instances
Bytes Type");
assertThat(result.getStdout()).containsPattern(" +\\d+ +\\d+
+org\\.apache\\.cassandra\\.config\\.DatabaseDescriptor\\$1");
}
+
+ @Test
+ public void testSjkMxdumpQueryFiltersResults()
+ {
+ ToolRunner.ToolResult allBeans = invokeNodetool("sjk", "mxdump");
+ allBeans.assertOnCleanExit();
+ assertThat(allBeans.getStdout()).contains(STORAGE_SERVICE_MBEAN);
+ assertThat(allBeans.getStdout()).contains(FAILURE_DETECTOR_MBEAN);
+
+ ToolRunner.ToolResult filtered = invokeNodetool("sjk", "mxdump", "-q",
+ STORAGE_SERVICE_MBEAN);
+ filtered.assertOnCleanExit();
+ assertThat(filtered.getStdout()).contains(STORAGE_SERVICE_MBEAN);
+
assertThat(filtered.getStdout()).doesNotContain(FAILURE_DETECTOR_MBEAN);
+ assertThat(filtered.getStdout()).doesNotContain(GOSSIPER_MBEAN);
+ }
+
+ @Test
+ public void testSjkMxdumpQueryWildcard()
+ {
+ ToolRunner.ToolResult filtered = invokeNodetool("sjk", "mxdump", "-q",
+
"org.apache.cassandra.net:*");
+ filtered.assertOnCleanExit();
+ assertThat(filtered.getStdout()).contains(FAILURE_DETECTOR_MBEAN);
+ assertThat(filtered.getStdout()).contains(GOSSIPER_MBEAN);
+ assertThat(filtered.getStdout()).contains(MESSAGING_SERVICE_MBEAN);
+ assertThat(filtered.getStdout()).doesNotContain(STORAGE_SERVICE_MBEAN);
+ assertThat(filtered.getStdout()).doesNotContain(CACHE_SERVICE_MBEAN);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]