diff --git a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategy.java b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategy.java index d270e5ee76..8a82e83c33 100755 --- a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategy.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategy.java @@ -31,6 +31,7 @@ import org.springframework.messaging.Message; * * @author Dave Syer * @author Gary Russell + * @author Peter Uhlenbruck * * @since 2.0 */ @@ -80,9 +81,6 @@ public class TimeoutCountSequenceSizeReleaseStrategy implements ReleaseStrategy if (timestamp != null && timestamp < result) { result = timestamp; } - else { - return Long.MAX_VALUE; // can't release based on time if there is no timestamp - } } return result; } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategyTests.java b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategyTests.java index f1958faa53..cbbfbe247f 100755 --- a/spring-integration-core/src/test/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategyTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategyTests.java @@ -27,6 +27,7 @@ import org.springframework.messaging.Message; /** * @author Dave Syer * @author Artme Bilan + * @author Peter Uhlenbruck */ public class TimeoutCountSequenceSizeReleaseStrategyTests { @@ -52,6 +53,21 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests { assertThat(releaseStrategy.canRelease(messages)).isTrue(); } + @Test + public void testIncompleteListWithTimeoutForMultipleMessages() { + Message message1 = MessageBuilder.withPayload("test1") + .setSequenceSize(3).build(); + Message message2 = MessageBuilder.withPayload("test2") + .setSequenceSize(3).build(); + SimpleMessageGroup messages = new SimpleMessageGroup("FOO"); + messages.add(message1); + messages.add(message2); + TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = + new TimeoutCountSequenceSizeReleaseStrategy(TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_THRESHOLD, + -100); + assertThat(releaseStrategy.canRelease(messages)).isTrue(); + } + @Test public void testIncompleteListWithCount() { Message message = MessageBuilder.withPayload("test1")