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 28a31bf24d..32d901fc24 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;
@@ -26,10 +27,10 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.PollableChannel;
-import org.springframework.integration.support.MessageBuilder;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -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() {