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
Artem Bilan
parent
42d8faf11e
commit
89e1eb35b9
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<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