Fix issue in MessageReturnValueHandler

This commit is contained in:
Rossen Stoyanchev
2013-06-24 11:47:59 -04:00
parent 32cb2ca2e7
commit ac23832e4d
2 changed files with 14 additions and 10 deletions

View File

@@ -61,6 +61,7 @@ public class MessageReturnValueHandler implements ReturnValueHandler {
Assert.notNull(this.clientChannel, "No clientChannel to send messages to");
Message<?> returnMessage = (Message<?>) returnValue;
if (message == null) {
return;
}
@@ -68,7 +69,7 @@ public class MessageReturnValueHandler implements ReturnValueHandler {
PubSubHeaderAccesssor headers = PubSubHeaderAccesssor.wrap(message);
Assert.notNull(headers.getSubscriptionId(), "No subscription id: " + message);
PubSubHeaderAccesssor returnHeaders = PubSubHeaderAccesssor.wrap(message);
PubSubHeaderAccesssor returnHeaders = PubSubHeaderAccesssor.wrap(returnMessage);
returnHeaders.setSessionId(headers.getSessionId());
returnHeaders.setSubscriptionId(headers.getSubscriptionId());
@@ -76,11 +77,10 @@ public class MessageReturnValueHandler implements ReturnValueHandler {
returnHeaders.setDestination(headers.getDestination());
}
Message<?> returnMessage = MessageBuilder.withPayload(
message.getPayload()).copyHeaders(headers.toHeaders()).build();
returnMessage = MessageBuilder.withPayload(
returnMessage.getPayload()).copyHeaders(returnHeaders.toHeaders()).build();
this.clientChannel.send(returnMessage);
}
}