Skip to content

Commit 5d4ee09

Browse files
committed
Fix AbstractJackson2Encoder#canEncode
This commit ensures that the Jackson encoder is selected only with supported mime types. Issue: SPR-15910
1 parent 320bfdf commit 5d4ee09

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,8 @@ public void setStreamingMediaTypes(List<MediaType> mediaTypes) {
7979
@Override
8080
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) {
8181
Class<?> clazz = elementType.resolve(Object.class);
82-
return (Object.class == clazz) ||
83-
!String.class.isAssignableFrom(elementType.resolve(clazz)) &&
84-
getObjectMapper().canSerialize(clazz) && supportsMimeType(mimeType);
82+
return supportsMimeType(mimeType) && (Object.class == clazz ||
83+
(!String.class.isAssignableFrom(elementType.resolve(clazz)) && getObjectMapper().canSerialize(clazz)));
8584
}
8685

8786
@Override

spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public void canEncode() {
6161

6262
// SPR-15464
6363
assertTrue(this.encoder.canEncode(ResolvableType.NONE, null));
64+
65+
// SPR-15910
66+
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Object.class), APPLICATION_OCTET_STREAM));
6467
}
6568

6669
@Test // SPR-15866

0 commit comments

Comments
 (0)