diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java index 374f2279..8f0dfe69 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java @@ -156,7 +156,7 @@ public abstract class AbstractMessageListenerContainer extends RabbitAccessor private TransactionAttribute transactionAttribute = new DefaultTransactionAttribute(); @Nullable - private String beanName; + private String beanName = "not.a.Spring.bean"; private Executor taskExecutor = new SimpleAsyncTaskExecutor(); diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java index 5b92c81c..1823d17d 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainer.java @@ -391,7 +391,7 @@ public class DirectMessageListenerContainer extends AbstractMessageListenerConta protected void doInitialize() { if (this.taskScheduler == null) { ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); - threadPoolTaskScheduler.setThreadNamePrefix(getBeanName() + "-consumerMonitor-"); + threadPoolTaskScheduler.setThreadNamePrefix(getListenerId() + "-consumerMonitor-"); threadPoolTaskScheduler.afterPropertiesSet(); this.taskScheduler = threadPoolTaskScheduler; } diff --git a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java index 6d5dd3b8..16580d51 100644 --- a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java +++ b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/DirectMessageListenerContainerMockTests.java @@ -360,6 +360,29 @@ public class DirectMessageListenerContainerMockTests { container.stop(); } + @Test + void monitorTaskThreadName() { + DirectMessageListenerContainer container = new DirectMessageListenerContainer(mock(ConnectionFactory.class)); + assertThat(container.getListenerId()).isEqualTo("not.a.Spring.bean"); + container.setBeanName("aBean"); + assertThat(container.getListenerId()).isEqualTo("aBean"); + container.setListenerId("id"); + assertThat(container.getListenerId()).isEqualTo("id"); + container.afterPropertiesSet(); + assertThat(container).extracting("taskScheduler") + .extracting("threadNamePrefix") + .asString() + .startsWith("id-consumerMonitor"); + + container = new DirectMessageListenerContainer(mock(ConnectionFactory.class)); + container.setBeanName("aBean"); + container.afterPropertiesSet(); + assertThat(container).extracting("taskScheduler") + .extracting("threadNamePrefix") + .asString() + .startsWith("aBean-consumerMonitor"); + } + private Envelope envelope(long tag) { return new Envelope(tag, false, "", ""); }