Skip to content

Commit 9505119

Browse files
authored
MINOR: Use NullNode instead of empty TextNode for missing request/response fields (apache#22295)
See apache#22075 (comment) , use `NullNode.getInstance()` instead of `new TextNode("")` as the fallback for missing `request`/`response` fields. Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
1 parent 6c83a29 commit 9505119

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

core/src/test/scala/unit/kafka/network/RequestConvertToJsonTest.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package kafka.network
1919

2020
import java.net.InetAddress
2121
import java.nio.ByteBuffer
22-
import com.fasterxml.jackson.databind.node.{BooleanNode, DoubleNode, JsonNodeFactory, LongNode, ObjectNode, TextNode}
22+
import com.fasterxml.jackson.databind.node.{BooleanNode, DoubleNode, JsonNodeFactory, LongNode, NullNode, ObjectNode, TextNode}
2323
import org.apache.kafka.common.memory.MemoryPool
2424
import org.apache.kafka.common.message._
2525
import org.apache.kafka.common.network.{ClientInformation, ListenerName, NetworkSend}
@@ -58,7 +58,7 @@ class RequestConvertToJsonTest {
5858
val expectedNode = new ObjectNode(JsonNodeFactory.instance)
5959
expectedNode.set("isForwarded", if (req.isForwarded) BooleanNode.TRUE else BooleanNode.FALSE)
6060
expectedNode.set("requestHeader", RequestConvertToJson.requestHeaderNode(req.header))
61-
expectedNode.set("request", req.requestLog.orElse(new TextNode("")))
61+
expectedNode.set("request", req.requestLog.orElse(NullNode.getInstance()))
6262

6363
val actualNode = RequestConvertToJson.requestDesc(req.header, req.requestLog, req.isForwarded)
6464

@@ -84,7 +84,7 @@ class RequestConvertToJsonTest {
8484
val messageConversionsTimeMs = 9
8585

8686
val expectedNode = RequestConvertToJson.requestDesc(req.header, req.requestLog, req.isForwarded).asInstanceOf[ObjectNode]
87-
expectedNode.set("response", res.responseLog.getOrElse(new TextNode("")))
87+
expectedNode.set("response", res.responseLog.getOrElse(NullNode.getInstance()))
8888
expectedNode.set("connection", new TextNode(req.context.connectionId))
8989
expectedNode.set("totalTimeMs", new DoubleNode(totalTimeMs))
9090
expectedNode.set("requestQueueTimeMs", new DoubleNode(requestQueueTimeMs))

server/src/main/java/org/apache/kafka/network/RequestConvertToJson.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@
384384
import com.fasterxml.jackson.databind.node.DoubleNode;
385385
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
386386
import com.fasterxml.jackson.databind.node.LongNode;
387+
import com.fasterxml.jackson.databind.node.NullNode;
387388
import com.fasterxml.jackson.databind.node.ObjectNode;
388389
import com.fasterxml.jackson.databind.node.TextNode;
389390

@@ -766,7 +767,7 @@ public static JsonNode requestDesc(RequestHeader header, Optional<JsonNode> requ
766767
ObjectNode node = JsonNodeFactory.instance.objectNode();
767768
node.set("isForwarded", isForwarded ? BooleanNode.TRUE : BooleanNode.FALSE);
768769
node.set("requestHeader", requestHeaderNode(header));
769-
node.set("request", requestNode.orElse(new TextNode("")));
770+
node.set("request", requestNode.orElse(NullNode.getInstance()));
770771
return node;
771772
}
772773

@@ -784,7 +785,7 @@ public static JsonNode requestDescMetrics(RequestHeader header, Optional<JsonNod
784785
double responseSendTimeMs, long temporaryMemoryBytes,
785786
double messageConversionsTimeMs) {
786787
ObjectNode node = (ObjectNode) requestDesc(header, requestNode, isForwarded);
787-
node.set("response", responseNode.orElse(new TextNode("")));
788+
node.set("response", responseNode.orElse(NullNode.getInstance()));
788789
node.set("connection", new TextNode(context.connectionId));
789790
node.set("totalTimeMs", new DoubleNode(totalTimeMs));
790791
node.set("requestQueueTimeMs", new DoubleNode(requestQueueTimeMs));

0 commit comments

Comments
 (0)