return message; return MessageBuilder.fromMessage(message).copyHeadersIfAbsent(headers).build();
@Override protected final void handleMessageInternal(Message<?> message) { ReplyMessageHolder replyMessageHolder = new ReplyMessageHolder(); this.handleRequestMessage(message, replyMessageHolder); if (replyMessageHolder.isEmpty()) { if (this.requiresReply) { throw new MessageHandlingException(message, "handler '" + this + "' requires a reply, but no reply was received"); } if (logger.isDebugEnabled()) { logger.debug("handler '" + this + "' produced no reply for request Message: " + message); } return; } MessageChannel replyChannel = this.resolveReplyChannel(message); MessageHeaders requestHeaders = message.getHeaders(); for (MessageBuilder<?> builder : replyMessageHolder.builders()) { builder.copyHeadersIfAbsent(requestHeaders); Message<?> replyMessage = builder.build(); if (!this.sendReplyMessage(replyMessage, replyChannel)) { throw new MessageDeliveryException(replyMessage, "failed to send reply Message"); } } }