From 61cb33f3474f9d12b3bdef5c0275e9efbaea6c39 Mon Sep 17 00:00:00 2001 From: PoAn Yang Date: Sat, 10 May 2025 10:48:05 -0500 Subject: [PATCH] KAFKA-19109 Don't print null in kafka-metadata-quorum describe status (#19543) If directory id is `Uuid.ZERO_UUID`, the command don't print the result. Reviewers: Ken Huang , TengYao Chi , Chia-Ping Tsai --- .../java/org/apache/kafka/tools/MetadataQuorumCommand.java | 6 ++++-- .../org/apache/kafka/tools/MetadataQuorumCommandTest.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/src/main/java/org/apache/kafka/tools/MetadataQuorumCommand.java b/tools/src/main/java/org/apache/kafka/tools/MetadataQuorumCommand.java index 668f1c172fa..322e0a7bac3 100644 --- a/tools/src/main/java/org/apache/kafka/tools/MetadataQuorumCommand.java +++ b/tools/src/main/java/org/apache/kafka/tools/MetadataQuorumCommand.java @@ -315,8 +315,10 @@ public class MetadataQuorumCommand { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); - sb.append("\"id\": ").append(id).append(", "); - sb.append("\"directoryId\": ").append(directoryId.equals(Uuid.ZERO_UUID) ? "null" : "\"" + directoryId + "\""); + sb.append("\"id\": ").append(id); + if (!directoryId.equals(Uuid.ZERO_UUID)) { + sb.append(", ").append("\"directoryId\": ").append("\"").append(directoryId).append("\""); + } if (!endpoints.isEmpty()) { sb.append(", \"endpoints\": ["); for (RaftVoterEndpoint endpoint : endpoints) { diff --git a/tools/src/test/java/org/apache/kafka/tools/MetadataQuorumCommandTest.java b/tools/src/test/java/org/apache/kafka/tools/MetadataQuorumCommandTest.java index 13b05e30649..5c8338d90ca 100644 --- a/tools/src/test/java/org/apache/kafka/tools/MetadataQuorumCommandTest.java +++ b/tools/src/test/java/org/apache/kafka/tools/MetadataQuorumCommandTest.java @@ -116,7 +116,7 @@ class MetadataQuorumCommandTest { assertTrue(outputs[4].matches("MaxFollowerLag:\\s+\\d+"), describeOutput); assertTrue(outputs[5].matches("MaxFollowerLagTimeMs:\\s+-?\\d+"), describeOutput); assertTrue( - outputs[6].matches("CurrentVoters:\\s+\\[\\{\"id\":\\s+\\d+,\\s+\"directoryId\":\\s+\\S+,\\s+" + + outputs[6].matches("CurrentVoters:\\s+\\[\\{\"id\":\\s+\\d+,\\s+" + "\"endpoints\":\\s+\\[\"\\S+://\\[?\\S+]?:\\d+\",?.*]"), describeOutput );