Browse Source

AbstractMessageConverter delegates null headers

See gh-29768
pull/30709/head
Atsushi Yoshikawa 2 years ago committed by rstoyanchev
parent
commit
b677ff20fe
  1. 2
      spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java
  2. 8
      spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java
  3. 12
      spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java

2
spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java

@ -251,7 +251,7 @@ public abstract class AbstractMessageConverter implements SmartMessageConverter @@ -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);
}
/**

8
spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java

@ -97,4 +97,12 @@ public class DefaultContentTypeResolverTests { @@ -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);
}
}

12
spring-messaging/src/test/java/org/springframework/messaging/converter/MessageConverterTests.java

@ -138,6 +138,18 @@ public class MessageConverterTests { @@ -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 {

Loading…
Cancel
Save