INT-3573: Fix EEvalSplitter for Iterator

JIRA: https://jira.spring.io/browse/INT-3573

Fix `seen` `Queue` `NPE` for `(S)FtpInboundRemoteFileSystemSynchronizerTests`:
https://build.spring.io/browse/INT-B41-JOB1-164/test/case/155357717

**Cherry-pick to 4.0.x**
This commit is contained in:
Artem Bilan
2014-12-09 22:47:57 +02:00
parent 26dae7bae7
commit 41dcd8a453
5 changed files with 41 additions and 17 deletions

View File

@@ -21,4 +21,6 @@
<beans:bean id="testBean" class="org.springframework.integration.splitter.SpelSplitterIntegrationTests$TestBean"/>
<splitter input-channel="spelIteratorInput" expression="@testBean.splitIterator(payload)" output-channel="output"/>
</beans:beans>

View File

@@ -56,6 +56,9 @@ public class SpelSplitterIntegrationTests {
@Autowired
private MessageChannel iteratorInput;
@Autowired
private MessageChannel spelIteratorInput;
@Autowired
private PollableChannel output;
@@ -127,6 +130,28 @@ public class SpelSplitterIntegrationTests {
assertNull(output.receive(0));
}
@Test
public void spelIteratorSplitter() {
this.spelIteratorInput.send(new GenericMessage<String>("a,b,c,d"));
Message<?> a = output.receive(0);
Message<?> b = output.receive(0);
Message<?> c = output.receive(0);
Message<?> d = output.receive(0);
assertEquals("a", a.getPayload());
assertEquals(new Integer(1), new IntegrationMessageHeaderAccessor(a).getSequenceNumber());
assertEquals(new Integer(0), new IntegrationMessageHeaderAccessor(a).getSequenceSize());
assertEquals("b", b.getPayload());
assertEquals(new Integer(2), new IntegrationMessageHeaderAccessor(b).getSequenceNumber());
assertEquals(new Integer(0), new IntegrationMessageHeaderAccessor(b).getSequenceSize());
assertEquals("c", c.getPayload());
assertEquals(new Integer(3), new IntegrationMessageHeaderAccessor(c).getSequenceNumber());
assertEquals(new Integer(0), new IntegrationMessageHeaderAccessor(c).getSequenceSize());
assertEquals("d", d.getPayload());
assertEquals(new Integer(4), new IntegrationMessageHeaderAccessor(d).getSequenceNumber());
assertEquals(new Integer(0), new IntegrationMessageHeaderAccessor(d).getSequenceSize());
assertNull(output.receive(0));
}
static class TestBean {