INT-1133 AbstractReplyProducingMessageHandler no longer copies headers from the request Message into the reply Message IF the return value from the handler implementation is already a Message instance.
This commit is contained in:
@@ -59,7 +59,11 @@ public abstract class AbstractRemotingOutboundGateway extends AbstractReplyProdu
|
||||
}
|
||||
Message<?> requestMessage = MessageBuilder.fromMessage(message).build();
|
||||
try {
|
||||
return this.proxy.exchange(requestMessage);
|
||||
Message<?> reply = this.proxy.exchange(requestMessage);
|
||||
if (reply != null) {
|
||||
reply = MessageBuilder.fromMessage(reply).copyHeadersIfAbsent(message.getHeaders()).build();
|
||||
}
|
||||
return reply;
|
||||
}
|
||||
catch (RemoteAccessException e) {
|
||||
throw new MessageHandlingException(message, "remote failure in Messaging Gateway", e);
|
||||
|
||||
@@ -115,16 +115,11 @@ public abstract class AbstractReplyProducingMessageHandler extends AbstractMessa
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Message<?> createReplyMessage(Object reply, MessageHeaders requestHeaders) {
|
||||
MessageBuilder<?> builder = null;
|
||||
if (reply instanceof MessageBuilder) {
|
||||
builder = (MessageBuilder<?>) reply;
|
||||
}
|
||||
else if (reply instanceof Message) {
|
||||
builder = MessageBuilder.fromMessage((Message) reply);
|
||||
}
|
||||
else {
|
||||
builder = MessageBuilder.withPayload(reply);
|
||||
if (reply instanceof Message) {
|
||||
return (Message<?>) reply;
|
||||
}
|
||||
MessageBuilder<?> builder = (reply instanceof MessageBuilder)
|
||||
? (MessageBuilder<?>) reply : MessageBuilder.withPayload(reply);
|
||||
builder.copyHeadersIfAbsent(requestHeaders);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user