Skip to content

Commit beada3b

Browse files
artembilanspring-builds
authored andcommitted
GH-2724: Fix RabbitFuture for interrupted thread
Fixes: #2724 (cherry picked from commit ec35739)
1 parent 6c864bb commit beada3b

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/RabbitFuture.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,21 +78,33 @@ Message getRequestMessage() {
7878

7979
@Override
8080
public boolean complete(T value) {
81-
cancelTimeoutTaskIfAny();
82-
return super.complete(value);
81+
try {
82+
return super.complete(value);
83+
}
84+
finally {
85+
cancelTimeoutTaskIfAny();
86+
}
8387
}
8488

8589
@Override
8690
public boolean completeExceptionally(Throwable ex) {
87-
cancelTimeoutTaskIfAny();
88-
return super.completeExceptionally(ex);
91+
try {
92+
return super.completeExceptionally(ex);
93+
}
94+
finally {
95+
cancelTimeoutTaskIfAny();
96+
}
8997
}
9098

9199
@Override
92100
public boolean cancel(boolean mayInterruptIfRunning) {
93-
cancelTimeoutTaskIfAny();
94101
this.canceler.accept(this.correlationId, this.channelHolder);
95-
return super.cancel(mayInterruptIfRunning);
102+
try {
103+
return super.cancel(mayInterruptIfRunning);
104+
}
105+
finally {
106+
cancelTimeoutTaskIfAny();
107+
}
96108
}
97109

98110
private void cancelTimeoutTaskIfAny() {

0 commit comments

Comments
 (0)