Fix AbstractJackson2Encoder#canEncode
This commit ensures that the Jackson encoder is selected only with supported mime types. Issue: SPR-15910
This commit is contained in:
parent
320bfdf413
commit
5d4ee09d53
|
@ -79,9 +79,8 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple
|
|||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) {
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return (Object.class == clazz) ||
|
||||
!String.class.isAssignableFrom(elementType.resolve(clazz)) &&
|
||||
getObjectMapper().canSerialize(clazz) && supportsMimeType(mimeType);
|
||||
return supportsMimeType(mimeType) && (Object.class == clazz ||
|
||||
(!String.class.isAssignableFrom(elementType.resolve(clazz)) && getObjectMapper().canSerialize(clazz)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -61,6 +61,9 @@ public class Jackson2JsonEncoderTests extends AbstractDataBufferAllocatingTestCa
|
|||
|
||||
// SPR-15464
|
||||
assertTrue(this.encoder.canEncode(ResolvableType.NONE, null));
|
||||
|
||||
// SPR-15910
|
||||
assertFalse(this.encoder.canEncode(ResolvableType.forClass(Object.class), APPLICATION_OCTET_STREAM));
|
||||
}
|
||||
|
||||
@Test // SPR-15866
|
||||
|
|
Loading…
Reference in New Issue