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.
This commit is contained in:
Gary Russell
2017-10-10 13:58:33 -04:00
committed by Artem Bilan
parent e2c214b34e
commit cce69a6bd8

View File

@@ -147,6 +147,9 @@ public abstract class MessageSerializationUtils {
} }
else { else {
String className = JavaClassMimeTypeUtils.classNameFromMimeType(contentType); String className = JavaClassMimeTypeUtils.classNameFromMimeType(contentType);
if (className == null) {
return bytes;
}
try { try {
// Cache types to avoid unnecessary ClassUtils.forName calls. // Cache types to avoid unnecessary ClassUtils.forName calls.
Class<?> targetType = payloadTypeCache.get(className); Class<?> targetType = payloadTypeCache.get(className);