diff --git a/spring-integration-core/src/main/java/org/springframework/integration/splitter/ExpressionEvaluatingSplitter.java b/spring-integration-core/src/main/java/org/springframework/integration/splitter/ExpressionEvaluatingSplitter.java index 52baa2be8d..06007dfc9d 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/splitter/ExpressionEvaluatingSplitter.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/splitter/ExpressionEvaluatingSplitter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2014 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. @@ -16,7 +16,7 @@ package org.springframework.integration.splitter; -import java.util.Collection; +import java.util.List; import org.springframework.expression.Expression; import org.springframework.integration.handler.ExpressionEvaluatingMessageProcessor; @@ -26,15 +26,16 @@ import org.springframework.integration.handler.ExpressionEvaluatingMessageProces * expression. The result of evaluation will typically be a Collection or * Array. If the result is not a Collection or Array, then the single Object * will be returned as the payload of a single reply Message. - * + * * @author Mark Fisher + * @author Gary Russell * @since 2.0 */ public class ExpressionEvaluatingSplitter extends AbstractMessageProcessingSplitter { @SuppressWarnings({"unchecked", "rawtypes"}) public ExpressionEvaluatingSplitter(Expression expression) { - super(new ExpressionEvaluatingMessageProcessor(expression, Collection.class)); + super(new ExpressionEvaluatingMessageProcessor(expression, List.class)); } } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests-context.xml index 2579e40260..7ad5a57a6a 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests-context.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests-context.xml @@ -13,6 +13,8 @@ + + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests.java b/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests.java index b7a9796289..f5305c1a48 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/splitter/SpelSplitterIntegrationTests.java @@ -17,6 +17,7 @@ package org.springframework.integration.splitter; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.ArrayList; @@ -43,12 +44,26 @@ public class SpelSplitterIntegrationTests { @Autowired private MessageChannel simpleInput; + @Autowired + private MessageChannel dups; + @Autowired private MessageChannel beanResolvingInput; @Autowired private PollableChannel output; + @Test + public void dups() { + Message message = MessageBuilder.withPayload("one one").build(); + this.dups.send(message); + Message one = output.receive(0); + Message two = output.receive(0); + assertNotNull(one); + assertNotNull(two); + assertEquals("one", one.getPayload()); + assertEquals("one", two.getPayload()); + } @Test public void simple() {