Fix Race with Delayed Idle

Defer setting the initial `lastReceive` until after the consumer is
created.

The `delayedIdleEvent()` test in `ConcurrentMessageListenerContainerMockTests`
could fail because the event might be published a few milliseconds before the
expected 500.
This commit is contained in:
Gary Russell
2023-07-17 14:00:52 -04:00
parent a7609a9598
commit 8692e76f1e

View File

@@ -817,7 +817,7 @@ public class KafkaMessageListenerContainer<K, V> // NOSONAR line count
private boolean taskSchedulerExplicitlySet;
private long lastReceive = System.currentTimeMillis();
private long lastReceive;
private long lastAlertAt = this.lastReceive;
@@ -1389,6 +1389,7 @@ public class KafkaMessageListenerContainer<K, V> // NOSONAR line count
initialize();
Throwable exitThrowable = null;
boolean failedAuthRetry = false;
this.lastReceive = System.currentTimeMillis();
while (isRunning()) {
try {
pollAndInvoke();