diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java index 04a4b59ac8c..a98222d4e92 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java @@ -145,11 +145,14 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener @Override public boolean canRead(Type type, Class contextClass, MediaType mediaType) { JavaType javaType = getJavaType(type, contextClass); + if (!canRead(mediaType)) { + return false; + } if (!jackson23Available || !logger.isWarnEnabled()) { - return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType)); + return this.objectMapper.canDeserialize(javaType); } AtomicReference causeRef = new AtomicReference(); - if (this.objectMapper.canDeserialize(javaType, causeRef) && canRead(mediaType)) { + if (this.objectMapper.canDeserialize(javaType, causeRef)) { return true; } Throwable cause = causeRef.get(); @@ -167,11 +170,14 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener @Override public boolean canWrite(Class clazz, MediaType mediaType) { + if (!canWrite(mediaType)) { + return false; + } if (!jackson23Available || !logger.isWarnEnabled()) { - return (this.objectMapper.canSerialize(clazz) && canWrite(mediaType)); + return this.objectMapper.canSerialize(clazz); } AtomicReference causeRef = new AtomicReference(); - if (this.objectMapper.canSerialize(clazz, causeRef) && canWrite(mediaType)) { + if (this.objectMapper.canSerialize(clazz, causeRef)) { return true; } Throwable cause = causeRef.get();