diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/SmartCompositeMessageConverter.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/SmartCompositeMessageConverter.java index ff69c69dd..5a3d9bb0e 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/SmartCompositeMessageConverter.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/SmartCompositeMessageConverter.java @@ -92,14 +92,16 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter { isConverted = true; } for (Iterator iterator = getConverters().iterator(); iterator.hasNext() && !isConverted;) { - Message m = MessageBuilder.withPayload(item).copyHeaders(message.getHeaders()).build(); // TODO Message creating may be expensive MessageConverter converter = (MessageConverter) iterator.next(); - Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ? - ((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) : - converter.fromMessage(m, genericItemRawType)); - if (conversionResult != null) { - resultList.add(conversionResult); - isConverted = true; + if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) { // TODO Stream stuff, needs to be removed + Message m = MessageBuilder.withPayload(item).copyHeaders(message.getHeaders()).build(); // TODO Message creating may be expensive + Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ? + ((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) : + converter.fromMessage(m, genericItemRawType)); + if (conversionResult != null) { + resultList.add(conversionResult); + isConverted = true; + } } } } @@ -107,11 +109,13 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter { } else { for (MessageConverter converter : getConverters()) { - result = (converter instanceof SmartMessageConverter ? - ((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) : - converter.fromMessage(message, targetClass)); - if (result != null) { - return result; + if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) {// TODO Stream stuff, needs to be removed + result = (converter instanceof SmartMessageConverter ? + ((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) : + converter.fromMessage(message, targetClass)); + if (result != null) { + return result; + } } } }