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]

Reply via email to