Skip to content

Commit 17f7332

Browse files
garyrussellartembilan
authored andcommitted
Set initialized in initialize()
Avoid duplicate initialization.
1 parent 7011b3f commit 17f7332

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,7 @@ public void initialize() {
11371137
}
11381138

11391139
}
1140+
this.initialized = true;
11401141
}
11411142
catch (Exception ex) {
11421143
throw convertRabbitAccessException(ex);
@@ -1214,7 +1215,6 @@ public void start() {
12141215
synchronized (this.lifecycleMonitor) {
12151216
if (!this.initialized) {
12161217
afterPropertiesSet();
1217-
this.initialized = true;
12181218
}
12191219
}
12201220
}

spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/MessageListenerRecoveryCachingConnectionIntegrationTests.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.springframework.amqp.rabbit.test.LogLevelAdjuster;
5656
import org.springframework.amqp.utils.test.TestUtils;
5757
import org.springframework.beans.factory.DisposableBean;
58+
import org.springframework.context.ApplicationContext;
5859
import org.springframework.context.support.GenericApplicationContext;
5960

6061
import com.rabbitmq.client.Channel;
@@ -395,12 +396,12 @@ public void testSingleListenerDoesRecoverFromMissingQueueWhenNotFatalGlobalProps
395396
RabbitAdmin admin = new RabbitAdmin(connectionFactory);
396397
admin.deleteQueue("nonexistent");
397398
try {
398-
container = doCreateContainer("nonexistent", new VanillaListener(latch), connectionFactory);
399399
Properties properties = new Properties();
400400
properties.setProperty("mlc.missing.queues.fatal", "false");
401401
GenericApplicationContext context = new GenericApplicationContext();
402402
context.getBeanFactory().registerSingleton("spring.amqp.global.properties", properties);
403403
context.refresh();
404+
container = doCreateContainer("nonexistent", new VanillaListener(latch), connectionFactory, context);
404405
container.setApplicationContext(context);
405406
container.start();
406407
testRecoverMissingQueues(latch, connectionFactory);
@@ -458,6 +459,15 @@ private SimpleMessageListenerContainer createContainer(String queueName, Object
458459

459460
protected SimpleMessageListenerContainer doCreateContainer(String queueName, Object listener,
460461
ConnectionFactory connectionFactory) {
462+
463+
return doCreateContainer(queueName, listener, connectionFactory, null);
464+
}
465+
466+
467+
468+
protected SimpleMessageListenerContainer doCreateContainer(String queueName, Object listener,
469+
ConnectionFactory connectionFactory, ApplicationContext context) {
470+
461471
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
462472
container.setMessageListener(new MessageListenerAdapter(listener));
463473
container.setQueueNames(queueName);
@@ -468,6 +478,9 @@ protected SimpleMessageListenerContainer doCreateContainer(String queueName, Obj
468478
container.setRecoveryInterval(100);
469479
container.setFailedDeclarationRetryInterval(100);
470480
container.setReceiveTimeout(50);
481+
if (context != null) {
482+
container.setApplicationContext(context);
483+
}
471484
container.afterPropertiesSet();
472485
return container;
473486
}

0 commit comments

Comments
 (0)