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 490b6f6a915..6921c2dab7f 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -178,10 +178,20 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { * @since 4.3 */ protected void logWarningIfNecessary(Type type, 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 5eb2cdfd026..942985dcc53 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, 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 {