diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageExchangeTemplate.java b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageExchangeTemplate.java index 0fb818cafe..80c4a253fd 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageExchangeTemplate.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageExchangeTemplate.java @@ -240,8 +240,8 @@ public class MessageExchangeTemplate implements InitializingBean { return sent; } catch (Exception e) { - MessagingException exception = new MessagingException( - "exception occurred in receive-and-forward exchange", e); + MessagingException exception = (e instanceof MessagingException) ? (MessagingException) e + : new MessagingException("exception occurred in receive-and-forward exchange", e); if (source instanceof MessageDeliveryAware) { ((MessageDeliveryAware) source).onFailure(exception); }