From 83c42a55e9d32d85fa3c58ca41b5353477ab215f Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Mon, 13 Jul 2020 12:07:52 -0400 Subject: [PATCH] GH-935: Fix KafkaNullConverter supported MimeType Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/935 Spring Cloud Function now checks if a converter supports the mime type before calling it. Previously, the converter supported no mime types, so it was never called, breaking Kafka Tombstone record processing (outbound). The converter must support all mime types so it can perform a no-op conversion, retaining the `KafkaNull`. The abstract converter will return null whenever the payload is not a `KafkaNull`, which is a signal to spring-cloud-function to try the next converter. --- .../cloud/stream/binder/kafka/KafkaNullConverter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaNullConverter.java b/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaNullConverter.java index 8bca6ea4f..1b7d6f807 100644 --- a/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaNullConverter.java +++ b/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaNullConverter.java @@ -23,6 +23,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.converter.AbstractMessageConverter; import org.springframework.messaging.converter.MessageConverter; +import org.springframework.util.MimeTypeUtils; /** * A {@link MessageConverter} that supports {@link KafkaNull} payloads. @@ -34,7 +35,7 @@ import org.springframework.messaging.converter.MessageConverter; public class KafkaNullConverter extends AbstractMessageConverter { public KafkaNullConverter() { - super(Collections.emptyList()); + super(Collections.singletonList(MimeTypeUtils.ALL)); } @Override