diff --git a/spring-integration-core/src/main/java/org/springframework/integration/handler/AbstractReplyProducingMessageHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/handler/AbstractReplyProducingMessageHandler.java index ee40f5095a..3b6daf494e 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/handler/AbstractReplyProducingMessageHandler.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/handler/AbstractReplyProducingMessageHandler.java @@ -114,7 +114,7 @@ public abstract class AbstractReplyProducingMessageHandler extends AbstractMessa } private void handleResult(Object result, MessageHeaders requestHeaders) { - if (result instanceof Iterable && this.shouldSplitIterableReply()) { + if (result instanceof Iterable && this.shouldSplitReply((Iterable) result)) { for (Object o : (Iterable) result) { this.produceReply(o, requestHeaders); } @@ -188,10 +188,12 @@ public abstract class AbstractReplyProducingMessageHandler extends AbstractMessa } } - /** - * Subclasses may override this. False by default. - */ - protected boolean shouldSplitIterableReply() { + private boolean shouldSplitReply(Iterable reply) { + for (Object next : reply) { + if (next instanceof Message || next instanceof MessageBuilder) { + return true; + } + } return false; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/splitter/AbstractMessageSplitter.java b/spring-integration-core/src/main/java/org/springframework/integration/splitter/AbstractMessageSplitter.java index 90cb074548..75e3551551 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/splitter/AbstractMessageSplitter.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/splitter/AbstractMessageSplitter.java @@ -97,11 +97,6 @@ public abstract class AbstractMessageSplitter extends AbstractReplyProducingMess return builder; } - @Override - protected boolean shouldSplitIterableReply() { - return true; - } - @Override public String getComponentType() { return "splitter";