From 43c2849248d7fd1856b6542a68a437f8e56bbb7e Mon Sep 17 00:00:00 2001 From: David Syer Date: Wed, 4 Aug 2010 20:15:41 +0000 Subject: [PATCH] INT-928: tidy nested aggregator --- .../AbstractAggregatingMessageGroupProcessor.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractAggregatingMessageGroupProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractAggregatingMessageGroupProcessor.java index 6fc09dac8c..5ee54b247c 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractAggregatingMessageGroupProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractAggregatingMessageGroupProcessor.java @@ -81,7 +81,8 @@ public abstract class AbstractAggregatingMessageGroupProcessor implements Messag || MessageHeaders.CORRELATION_ID.equals(key)) { continue; } - if (AbstractMessageSplitter.SEQUENCE_DETAILS.equals(key) && !aggregatedHeaders.containsKey(MessageHeaders.CORRELATION_ID)) { + if (AbstractMessageSplitter.SEQUENCE_DETAILS.equals(key) + && !aggregatedHeaders.containsKey(MessageHeaders.CORRELATION_ID)) { @SuppressWarnings("unchecked") List incomingSequenceDetails = new ArrayList(currentHeaders .get(key, List.class)); @@ -89,12 +90,15 @@ public abstract class AbstractAggregatingMessageGroupProcessor implements Messag Assert.state(sequenceDetails.length == 3, "Wrong sequence details (not created by splitter?): " + Arrays.asList(sequenceDetails)); aggregatedHeaders.put(MessageHeaders.CORRELATION_ID, sequenceDetails[0]); - aggregatedHeaders.put(MessageHeaders.SEQUENCE_NUMBER, sequenceDetails[1]); - aggregatedHeaders.put(MessageHeaders.SEQUENCE_SIZE, sequenceDetails[2]); + Integer sequenceNumber = (Integer) sequenceDetails[1]; + Integer sequenceSize = (Integer) sequenceDetails[2]; + if (sequenceSize > 0) { + aggregatedHeaders.put(MessageHeaders.SEQUENCE_NUMBER, sequenceNumber); + aggregatedHeaders.put(MessageHeaders.SEQUENCE_SIZE, sequenceSize); + } if (!incomingSequenceDetails.isEmpty()) { aggregatedHeaders.put(AbstractMessageSplitter.SEQUENCE_DETAILS, incomingSequenceDetails); } - System.err.println(aggregatedHeaders); continue; } Object value = currentHeaders.get(key);