Skip to content

Commit 94f59ab

Browse files
garyrussellartembilan
authored andcommitted
Fix call to deprecated return callback
1 parent 985cf3c commit 94f59ab

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/RabbitTemplate.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public class RabbitTemplate extends RabbitAccessor // NOSONAR type line count
219219
@Nullable
220220
private ConfirmCallback confirmCallback;
221221

222-
private ReturnsCallback returnCallback;
222+
private ReturnsCallback returnsCallback;
223223

224224
private Expression mandatoryExpression = new ValueExpression<Boolean>(false);
225225

@@ -466,13 +466,13 @@ public void setConfirmCallback(ConfirmCallback confirmCallback) {
466466
*/
467467
@Deprecated
468468
public void setReturnCallback(ReturnCallback returnCallback) {
469-
Assert.state(this.returnCallback == null || this.returnCallback.delegate() == returnCallback,
469+
Assert.state(this.returnsCallback == null || this.returnsCallback.delegate() == returnCallback,
470470
"Only one ReturnCallback is supported by each RabbitTemplate");
471-
this.returnCallback = new ReturnsCallback() {
471+
this.returnsCallback = new ReturnsCallback() {
472472

473473
@Override
474474
public void returnedMessage(ReturnedMessage returned) {
475-
returnedMessage(returned.getMessage(), returned.getReplyCode(), returned.getReplyText(),
475+
returnCallback.returnedMessage(returned.getMessage(), returned.getReplyCode(), returned.getReplyText(),
476476
returned.getExchange(), returned.getRoutingKey());
477477
}
478478

@@ -485,9 +485,9 @@ public ReturnCallback delegate() {
485485
}
486486

487487
public void setReturnsCallback(ReturnsCallback returnCallback) {
488-
Assert.state(this.returnCallback == null || this.returnCallback == returnCallback,
488+
Assert.state(this.returnsCallback == null || this.returnsCallback == returnCallback,
489489
"Only one ReturnCallback is supported by each RabbitTemplate");
490-
this.returnCallback = returnCallback;
490+
this.returnsCallback = returnCallback;
491491
}
492492

493493
/**
@@ -1043,7 +1043,7 @@ public void send(final String exchange, final String routingKey,
10431043
throws AmqpException {
10441044
execute(channel -> {
10451045
doSend(channel, exchange, routingKey, message,
1046-
(RabbitTemplate.this.returnCallback != null
1046+
(RabbitTemplate.this.returnsCallback != null
10471047
|| (correlationData != null && StringUtils.hasText(correlationData.getId())))
10481048
&& RabbitTemplate.this.mandatoryExpression.getValue(
10491049
RabbitTemplate.this.evaluationContext, message, Boolean.class),
@@ -1516,7 +1516,7 @@ private <S> void doSendReply(final ReplyToAddressCallback<S> replyToAddressCallb
15161516
replyTo.getExchangeName(),
15171517
replyTo.getRoutingKey(),
15181518
replyMessage,
1519-
RabbitTemplate.this.returnCallback != null && isMandatoryFor(replyMessage),
1519+
RabbitTemplate.this.returnsCallback != null && isMandatoryFor(replyMessage),
15201520
null);
15211521
}
15221522

@@ -2037,7 +2037,7 @@ private Message exchangeMessages(final String exchange, final String routingKey,
20372037

20382038
Message reply;
20392039
boolean mandatory = isMandatoryFor(message);
2040-
if (mandatory && this.returnCallback == null) {
2040+
if (mandatory && this.returnsCallback == null) {
20412041
message.getMessageProperties().getHeaders().put(RETURN_CORRELATION_KEY, messageTag);
20422042
}
20432043
doSend(channel, exchange, routingKey, message, mandatory, correlationData);
@@ -2524,7 +2524,7 @@ public void handleReturn(int replyCode,
25242524

25252525
@Override
25262526
public void handleReturn(Return returned) {
2527-
ReturnsCallback callback = this.returnCallback;
2527+
ReturnsCallback callback = this.returnsCallback;
25282528
if (callback == null) {
25292529
Object messageTagHeader = returned.getProperties().getHeaders().remove(RETURN_CORRELATION_KEY);
25302530
if (messageTagHeader != null) {

spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateTests.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2020 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -58,13 +58,15 @@
5858
import org.springframework.amqp.core.MessageProperties;
5959
import org.springframework.amqp.core.Queue;
6060
import org.springframework.amqp.core.ReceiveAndReplyCallback;
61+
import org.springframework.amqp.core.ReturnedMessage;
6162
import org.springframework.amqp.rabbit.connection.AbstractRoutingConnectionFactory;
6263
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
6364
import org.springframework.amqp.rabbit.connection.ChannelProxy;
6465
import org.springframework.amqp.rabbit.connection.PublisherCallbackChannel;
6566
import org.springframework.amqp.rabbit.connection.RabbitUtils;
6667
import org.springframework.amqp.rabbit.connection.SimpleRoutingConnectionFactory;
6768
import org.springframework.amqp.rabbit.connection.SingleConnectionFactory;
69+
import org.springframework.amqp.rabbit.core.RabbitTemplate.ReturnsCallback;
6870
import org.springframework.amqp.support.converter.SimpleMessageConverter;
6971
import org.springframework.amqp.utils.SerializationUtils;
7072
import org.springframework.amqp.utils.test.TestUtils;
@@ -559,6 +561,19 @@ public void testPublisherConnWithInvokeInTx() {
559561
verify(conn).createChannel(true);
560562
}
561563

564+
@SuppressWarnings("deprecation")
565+
@Test
566+
public void testReturnsFallback() {
567+
RabbitTemplate template = new RabbitTemplate();
568+
AtomicBoolean called = new AtomicBoolean();
569+
template.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> {
570+
called.set(true);
571+
});
572+
ReturnsCallback cb = TestUtils.getPropertyValue(template, "returnsCallback", ReturnsCallback.class);
573+
cb.returnedMessage(new ReturnedMessage(null, 0, null, null, null));
574+
assertThat(called.get()).isTrue();
575+
}
576+
562577
@SuppressWarnings("serial")
563578
private class TestTransactionManager extends AbstractPlatformTransactionManager {
564579

0 commit comments

Comments
 (0)