diff --git a/spring-integration-core/src/main/java/org/springframework/integration/json/JsonToObjectTransformer.java b/spring-integration-core/src/main/java/org/springframework/integration/json/JsonToObjectTransformer.java index 90d351688f..7646b77fd0 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/json/JsonToObjectTransformer.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/json/JsonToObjectTransformer.java @@ -197,7 +197,7 @@ public class JsonToObjectTransformer extends AbstractTransformer implements Bean } catch (Exception ex) { if (ex.getCause() instanceof ClassNotFoundException) { - logger.info("Cannot build a ResolvableType from the request message '" + message + + logger.debug("Cannot build a ResolvableType from the request message '" + message + "' evaluating expression '" + this.valueTypeExpression.getExpressionString() + "'", ex); return null; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java b/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java index 3e3cefce03..24d6a16ce5 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java @@ -278,7 +278,9 @@ public abstract class AbstractHeaderMapper implements RequestReplyHeaderMappe if (shouldMapHeader(headerName, headerMatcher)) { Object value = entry.getValue(); target.put(headerName, value); - if (JsonHeaders.TYPE_ID.equals(headerName) && value != null) { + if (this.replyHeaderMatcher == headerMatcher && + JsonHeaders.TYPE_ID.equals(headerName) && value != null) { + ResolvableType resolvableType = createJsonResolvableTypHeaderInAny(value, source.get(JsonHeaders.CONTENT_TYPE_ID), source.get(JsonHeaders.KEY_TYPE_ID)); @@ -303,11 +305,10 @@ public abstract class AbstractHeaderMapper implements RequestReplyHeaderMappe @Nullable Object keyId) { try { - return JsonHeaders.buildResolvableType(getClassLoader(), typeId, - contentId, keyId); + return JsonHeaders.buildResolvableType(getClassLoader(), typeId, contentId, keyId); } catch (Exception e) { - this.logger.warn("Cannot build a ResolvableType from 'json__TypeId__' header", e); + this.logger.debug("Cannot build a ResolvableType from 'json__TypeId__' header", e); } return null; } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/json/JsonToObjectTransformerParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/json/JsonToObjectTransformerParserTests.java index a4be6e8073..25a374e4d3 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/json/JsonToObjectTransformerParserTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/json/JsonToObjectTransformerParserTests.java @@ -93,7 +93,7 @@ public class JsonToObjectTransformerParserTests { assertThat(person.getAddress().toString()).isEqualTo("123 Main Street"); ArgumentCaptor stringArgumentCaptor = ArgumentCaptor.forClass(String.class); - verify(logger).info(stringArgumentCaptor.capture(), any(Exception.class)); + verify(logger).debug(stringArgumentCaptor.capture(), any(Exception.class)); String logMessage = stringArgumentCaptor.getValue(); assertThat(logMessage).startsWith("Cannot build a ResolvableType from the request message");