diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java index cca9749c727..ba0848f97dc 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java @@ -180,10 +180,20 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { * @since 4.3 */ protected void logWarningIfNecessary(Type type, @Nullable Throwable cause) { - if (cause != null && !(cause instanceof JsonMappingException && cause.getMessage().startsWith("Can not find"))) { + if (cause == null) { + return; + } + + boolean debugLevel = (cause instanceof JsonMappingException && + cause.getMessage().startsWith("Can not find")); + + if (debugLevel ? logger.isDebugEnabled() : logger.isWarnEnabled()) { String msg = "Failed to evaluate Jackson " + (type instanceof JavaType ? "de" : "") + "serialization for type [" + type + "]"; - if (logger.isDebugEnabled()) { + if (debugLevel) { + logger.debug(msg, cause); + } + else if (logger.isDebugEnabled()) { logger.warn(msg, cause); } else { 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 9cc46d92a68..08c9c09df15 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 @@ -191,10 +191,20 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener * @since 4.3 */ protected void logWarningIfNecessary(Type type, @Nullable Throwable cause) { - if (cause != null && !(cause instanceof JsonMappingException && cause.getMessage().startsWith("Can not find"))) { + if (cause == null) { + return; + } + + boolean debugLevel = (cause instanceof JsonMappingException && + cause.getMessage().startsWith("Can not find")); + + if (debugLevel ? logger.isDebugEnabled() : logger.isWarnEnabled()) { String msg = "Failed to evaluate Jackson " + (type instanceof JavaType ? "de" : "") + "serialization for type [" + type + "]"; - if (logger.isDebugEnabled()) { + if (debugLevel) { + logger.debug(msg, cause); + } + else if (logger.isDebugEnabled()) { logger.warn(msg, cause); } else {