From b677ff20fe952e754489f4cb0f212f823f0597bf Mon Sep 17 00:00:00 2001 From: Atsushi Yoshikawa Date: Thu, 5 Jan 2023 13:07:26 +0900 Subject: [PATCH] AbstractMessageConverter delegates null headers See gh-29768 --- .../converter/AbstractMessageConverter.java | 2 +- .../converter/DefaultContentTypeResolverTests.java | 8 ++++++++ .../messaging/converter/MessageConverterTests.java | 12 ++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java index 3346b171564..7fd76de04c0 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java @@ -251,7 +251,7 @@ public abstract class AbstractMessageConverter implements SmartMessageConverter @Nullable protected MimeType getMimeType(@Nullable MessageHeaders headers) { - return (headers != null && this.contentTypeResolver != null ? this.contentTypeResolver.resolve(headers) : null); + return (this.contentTypeResolver != null ? this.contentTypeResolver.resolve(headers) : null); } /** diff --git a/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java index fa6a8bb45f2..9013a05cd35 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java @@ -97,4 +97,12 @@ public class DefaultContentTypeResolverTests { assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); } + @Test + public void resolveDefaultMimeTypeWithNoHeader() { + this.resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON); + MessageHeaders headers = null; + + assertThat(this.resolver.resolve(headers)).isEqualTo(MimeTypeUtils.APPLICATION_JSON); + } + } diff --git a/spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java index dfb4ff7409c..b70770006a5 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java @@ -138,6 +138,18 @@ public class MessageConverterTests { assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)).isEqualTo(MimeTypeUtils.TEXT_PLAIN); } + @Test + public void toMessageDefaultContentType() { + DefaultContentTypeResolver resolver = new DefaultContentTypeResolver(); + resolver.setDefaultMimeType(MimeTypeUtils.TEXT_PLAIN); + TestMessageConverter converter = new TestMessageConverter(); + converter.setContentTypeResolver(resolver); + converter.setStrictContentTypeMatch(true); + + Message message = converter.toMessage("ABC", null); + assertThat(message.getHeaders().get(MessageHeaders.CONTENT_TYPE)).isEqualTo(MimeTypeUtils.TEXT_PLAIN); + } + private static class TestMessageConverter extends AbstractMessageConverter {