From f6398e14d0eb53c6469310e3a7d2e91de75e4baf Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 17 Jun 2013 15:27:32 +0100 Subject: [PATCH] Received message's destination is default for resp When an annotated handler returns a Message from a @SubscribeEvent or @MessageMapping method and it contains no destination in its headers, use the received message's destination as the response message's destination. --- .../messaging/service/method/MessageReturnValueHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/service/method/MessageReturnValueHandler.java b/spring-websocket/src/main/java/org/springframework/web/messaging/service/method/MessageReturnValueHandler.java index fdf7a8c6a6..2541eb33b1 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/service/method/MessageReturnValueHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/service/method/MessageReturnValueHandler.java @@ -84,6 +84,10 @@ public class MessageReturnValueHandler implements ReturnValueHandler { returnHeaders.setSessionId(sessionId); returnHeaders.setSubscriptionId(subscriptionId); + if (returnHeaders.getDestination() == null) { + returnHeaders.setDestination(headers.getDestination()); + } + Object payload = returnMessage.getPayload(); return MessageBuilder.fromPayloadAndHeaders(payload, returnHeaders.toMessageHeaders()).build(); }