From 1b26f5d6293e0b7d7d94d3100fd2e0434eadb2f6 Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Wed, 18 Aug 2021 20:44:12 -0400 Subject: [PATCH] GH-1112: Fix OOM in DlqSender.sendToDlq https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/1112 --- .../binder/kafka/KafkaMessageChannelBinder.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaMessageChannelBinder.java b/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaMessageChannelBinder.java index 9c7b5b2aa..8a7ec27ff 100644 --- a/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaMessageChannelBinder.java +++ b/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaMessageChannelBinder.java @@ -1621,9 +1621,9 @@ public class KafkaMessageChannelBinder extends key, value, headers); StringBuilder sb = new StringBuilder().append(" a message with key='") - .append(toDisplayString(ObjectUtils.nullSafeToString(key), 50)) + .append(keyOrValue(key)) .append("'").append(" and payload='") - .append(toDisplayString(ObjectUtils.nullSafeToString(value), 50)) + .append(keyOrValue(value)) .append("'").append(" received from ") .append(consumerRecord.partition()); ListenableFuture> sentDlq = null; @@ -1663,9 +1663,16 @@ public class KafkaMessageChannelBinder extends messageHeaders.get(KafkaHeaders.ACKNOWLEDGMENT, Acknowledgment.class).acknowledge(); } } - } + private String keyOrValue(Object keyOrValue) { + if (keyOrValue instanceof byte[]) { + return "byte[" + ((byte[]) keyOrValue).length + "]"; + } + else { + return toDisplayString(ObjectUtils.nullSafeToString(keyOrValue), 50); + } + } } }