diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/SimpleMessageListenerContainer.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/SimpleMessageListenerContainer.java index d72f2c4e..58a41120 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/SimpleMessageListenerContainer.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/SimpleMessageListenerContainer.java @@ -456,9 +456,11 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta try { consumer.start(); + start.countDown(); } catch (FatalListenerStartupException ex) { throw ex; } catch (Throwable t) { + start.countDown(); handleStartupFailure(t); throw t; } @@ -466,7 +468,6 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta // Always better to stop receiving as soon as possible if // transactional boolean continuable = false; - start.countDown(); while (isActive() || continuable) { try { // Will come back false when the queue is drained