From d23afa220316da0ff30f3c34863e942eb723d581 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Wed, 23 Mar 2022 14:53:51 -0400 Subject: [PATCH] RGH-1439: AMQP: Log Warn For Misconfigured Confirm See https://github.com/spring-projects/spring-amqp/issues/1439 **cherry-pick to 5.5.x* --- .../integration/amqp/outbound/AmqpOutboundEndpoint.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java index 78b2444b43..425cb34409 100644 --- a/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java +++ b/spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AmqpOutboundEndpoint.java @@ -137,11 +137,19 @@ public class AmqpOutboundEndpoint extends AbstractAmqpOutboundEndpoint Assert.notNull(this.rabbitTemplate, "RabbitTemplate implementation is required for publisher confirms"); this.rabbitTemplate.setConfirmCallback(this); + if (!this.rabbitTemplate.getConnectionFactory().isPublisherConfirms()) { + this.logger.warn("A confirm correlation expression is provided but the underlying connection factory " + + "does not support correlated delivery confirmations; no confirmations will be received"); + } } if (getReturnChannel() != null) { Assert.notNull(this.rabbitTemplate, "RabbitTemplate implementation is required for publisher confirms"); this.rabbitTemplate.setReturnsCallback(this); + if (!this.rabbitTemplate.getConnectionFactory().isPublisherReturns()) { + this.logger.warn("A return channel is provided but the underlying connection factory " + + "does not support returned messages; none will be received"); + } } Duration confirmTimeout = getConfirmTimeout(); if (confirmTimeout != null) {