Skip to content

Commit 89e1eb3

Browse files
puhlenbruckartembilan
authored andcommitted
GH-2999: Fix TimeoutCountSeqSizeReleaseStrategy
Fixes #2999 Remove `else` block from `findEarliestTimestamp` causing the method to return with `Long.MAX_VALUE` if the condition was ever `false`. **Cherry-pick to 5.1.x**
1 parent 42d8faf commit 89e1eb3

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

spring-integration-core/src/main/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategy.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
*
3232
* @author Dave Syer
3333
* @author Gary Russell
34+
* @author Peter Uhlenbruck
3435
*
3536
* @since 2.0
3637
*/
@@ -80,9 +81,6 @@ private long findEarliestTimestamp(MessageGroup messages) {
8081
if (timestamp != null && timestamp < result) {
8182
result = timestamp;
8283
}
83-
else {
84-
return Long.MAX_VALUE; // can't release based on time if there is no timestamp
85-
}
8684
}
8785
return result;
8886
}

spring-integration-core/src/test/java/org/springframework/integration/aggregator/TimeoutCountSequenceSizeReleaseStrategyTests.java

+16
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
/**
2828
* @author Dave Syer
2929
* @author Artme Bilan
30+
* @author Peter Uhlenbruck
3031
*/
3132
public class TimeoutCountSequenceSizeReleaseStrategyTests {
3233

@@ -52,6 +53,21 @@ public void testIncompleteListWithTimeout() {
5253
assertThat(releaseStrategy.canRelease(messages)).isTrue();
5354
}
5455

56+
@Test
57+
public void testIncompleteListWithTimeoutForMultipleMessages() {
58+
Message<String> message1 = MessageBuilder.withPayload("test1")
59+
.setSequenceSize(3).build();
60+
Message<String> message2 = MessageBuilder.withPayload("test2")
61+
.setSequenceSize(3).build();
62+
SimpleMessageGroup messages = new SimpleMessageGroup("FOO");
63+
messages.add(message1);
64+
messages.add(message2);
65+
TimeoutCountSequenceSizeReleaseStrategy releaseStrategy =
66+
new TimeoutCountSequenceSizeReleaseStrategy(TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_THRESHOLD,
67+
-100);
68+
assertThat(releaseStrategy.canRelease(messages)).isTrue();
69+
}
70+
5571
@Test
5672
public void testIncompleteListWithCount() {
5773
Message<String> message = MessageBuilder.withPayload("test1")

0 commit comments

Comments
 (0)