GH-2999: Fix TimeoutCountSeqSizeReleaseStrategy
Fixes https://github.com/spring-projects/spring-integration/issues/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**
This commit is contained in:
committed by
Gary Russell
parent
1e38ff7b0e
commit
9ab1fc821f
@@ -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;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.springframework.messaging.Message;
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @author Artme Bilan
|
||||
* @author Peter Uhlenbruck
|
||||
*/
|
||||
public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
|
||||
@@ -53,6 +54,21 @@ public class TimeoutCountSequenceSizeReleaseStrategyTests {
|
||||
assertTrue(releaseStrategy.canRelease(messages));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIncompleteListWithTimeoutForMultipleMessages() {
|
||||
Message<String> message1 = MessageBuilder.withPayload("test1")
|
||||
.setSequenceSize(3).build();
|
||||
Message<String> 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<String> message = MessageBuilder.withPayload("test1")
|
||||
|
||||
Reference in New Issue
Block a user