Skip to content

Commit

Permalink
GH-3697: DelegatingInvocableHandler.invoke() returning null
Browse files Browse the repository at this point in the history
* Optimize a MessagingMessageListenerAdapter returning null from the DelegatingInvocableHandler.invoke()

Fixes: #3697 

Signed-off-by: ivamly <[email protected]>

**Auto-cherry-pick to `3.2.x`**
  • Loading branch information
ivamly authored Jan 16, 2025
1 parent 5f7b151 commit 004fd52
Showing 1 changed file with 10 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2016-2024 the original author or authors.
* Copyright 2016-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -55,6 +55,7 @@
*
* @author Gary Russell
* @author Wang Zhiyang
* @author Ivan Malutin
*
*/
public class DelegatingInvocableHandler {
Expand Down Expand Up @@ -167,6 +168,7 @@ public boolean isAsyncReplies() {
* @throws Exception raised if no suitable argument resolver can be found,
* or the method raised an exception.
*/
@Nullable
public Object invoke(Message<?> message, Object... providedArgs) throws Exception { //NOSONAR
Class<?> payloadClass = message.getPayload().getClass();
InvocableHandlerMethod handler = getHandlerForPayload(payloadClass);
Expand All @@ -186,8 +188,13 @@ public Object invoke(Message<?> message, Object... providedArgs) throws Exceptio
else {
result = handler.invoke(message, providedArgs);
}
Expression replyTo = this.handlerSendTo.get(handler);
return new InvocationResult(result, replyTo, this.handlerReturnsMessage.get(handler));
if (result != null) {
Expression replyTo = this.handlerSendTo.get(handler);
return new InvocationResult(result, replyTo, this.handlerReturnsMessage.get(handler));
}
else {
return null;
}
}

/**
Expand Down

0 comments on commit 004fd52

Please sign in to comment.