Skip to content

Commit d70df11

Browse files
committed
PollerAdviceTests: synchronized list actions
https://build.spring.io/browse/INT-MASTERSPRING40-441 Even if we `stop()` a `SourcePollingChannelAdapter` that doesn't mean that task-in-progress can't deliver its result to the source consumer. * Wrap a list `add()` and iterator operations to avoid a `ConcurrentModificationException`
1 parent f087337 commit d70df11

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

spring-integration-core/src/test/java/org/springframework/integration/endpoint/PollerAdviceTests.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,9 @@ public void testActiveIdleAdvice() throws Exception {
257257
final LinkedList<Long> triggerPeriods = new LinkedList<>();
258258
final DynamicPeriodicTrigger trigger = new DynamicPeriodicTrigger(10);
259259
adapter.setSource(() -> {
260-
triggerPeriods.add(trigger.getPeriod());
260+
synchronized (triggerPeriods) {
261+
triggerPeriods.add(trigger.getPeriod());
262+
}
261263
Message<Object> m = null;
262264
if (latch.getCount() % 2 == 0) {
263265
m = new GenericMessage<>("foo");
@@ -275,10 +277,9 @@ public void testActiveIdleAdvice() throws Exception {
275277
adapter.start();
276278
assertTrue(latch.await(10, TimeUnit.SECONDS));
277279
adapter.stop();
278-
while (triggerPeriods.size() > 5) {
279-
triggerPeriods.removeLast();
280+
synchronized (triggerPeriods) {
281+
assertThat(triggerPeriods.subList(0, 5), contains(10L, 12L, 11L, 12L, 11L));
280282
}
281-
assertThat(triggerPeriods, contains(10L, 12L, 11L, 12L, 11L));
282283
}
283284

284285
@Test
@@ -308,10 +309,7 @@ public void testCompoundTriggerAdvice() throws Exception {
308309
assertTrue(latch.await(10, TimeUnit.SECONDS));
309310
adapter.stop();
310311
synchronized (overridePresent) {
311-
while (overridePresent.size() > 5) {
312-
overridePresent.removeLast();
313-
}
314-
assertThat(overridePresent, contains(null, override, null, override, null));
312+
assertThat(overridePresent.subList(0, 5), contains(null, override, null, override, null));
315313
}
316314
verify(override, atLeast(2)).nextExecutionTime(any(TriggerContext.class));
317315
}

0 commit comments

Comments
 (0)