From cce69a6bd8bfd1b8cb0055447d176dfa367ff4e2 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 10 Oct 2017 13:58:33 -0400 Subject: [PATCH] KAFKA GH-223: Handle unexpected content type See https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/223 When using native encoding; NPE when no class name derived from the content type. Do not attempt deserialization if `JavaClassMimeTypeUtils.classNameFromMimeType(contentType)` returns `null`. Test case in the Kafka binder. --- .../cloud/stream/binder/MessageSerializationUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/MessageSerializationUtils.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/MessageSerializationUtils.java index 0eb0157f6..62553cef0 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/MessageSerializationUtils.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binder/MessageSerializationUtils.java @@ -147,6 +147,9 @@ public abstract class MessageSerializationUtils { } else { String className = JavaClassMimeTypeUtils.classNameFromMimeType(contentType); + if (className == null) { + return bytes; + } try { // Cache types to avoid unnecessary ClassUtils.forName calls. Class targetType = payloadTypeCache.get(className);