@ -197,6 +197,8 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
@@ -197,6 +197,8 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
privatevolatilebooleanrecovering=false;
privatevolatilebooleaninterrupted=false;
privateRunnablestopCallback;
privateObjectcurrentRecoveryMarker=newObject();
@ -893,6 +895,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
@@ -893,6 +895,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
}
finally{
this.recovering=false;
this.interrupted=false;
}
}
@ -976,6 +979,10 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
@@ -976,6 +979,10 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
// Interrupted right before and still failing... give up.
returnfalse;
}
longinterval=execution.nextBackOff();
if(interval==BackOffExecution.STOP){
returnfalse;
@ -987,9 +994,12 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
@@ -987,9 +994,12 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
catch(InterruptedExceptioninterEx){
// Re-interrupt current thread, to allow other threads to react.