Affects: Spring Boot Version 3.0.3 (spring-jms 6.0.5)
I want to use the DefaultMessageListenerContainer with an ExponentialBackoff, but if the last message was not succeeded, the backoff starts always with the initial time and does not use the multiplier.
I think there is an bug in the following method: https://github.com/spring-projects/spring-framework/blob/main/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java#L1311
The started BackOffExecution never gets stored inside the context and container? Each call it only calls the .start method and begin with the initial time to wait.
Comment From: sven-tsi
what i saw now. The usage in this method works fine: https://github.com/spring-projects/spring-framework/blob/main/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java#L979
The usage here, which i want to use not: https://github.com/spring-projects/spring-framework/blob/main/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java#L1139
Comment From: snicoll
It looks like you expect the first refresh to first wait one back off execution. That's not what we want to do as the failure may have already took a while to surface so we want to retry immediately and then try again using the backoff.
If that's not what you meant, then I am afraid we need more details than links to our code. If that's the case, we can reopen once you provide the information.