diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageReceivingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageReceivingTemplate.java index 2debce8b6c..04ca7e60f8 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageReceivingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageReceivingTemplate.java @@ -67,9 +67,9 @@ public abstract class AbstractMessageReceivingTemplate extends AbstractMessag MessageConverter messageConverter = getMessageConverter(); T value = (T) messageConverter.fromMessage(message, targetClass); if (value == null) { - throw new MessageConversionException("Unable to convert payload='" + throw new MessageConversionException(message, "Unable to convert payload='" + message.getPayload() + "' to type='" + targetClass - + "', converter=[" + messageConverter + "]"); + + "', converter=[" + messageConverter + "]", null); } return value; } diff --git a/spring-messaging/src/test/java/org/springframework/messaging/core/MessageReceivingTemplateTests.java b/spring-messaging/src/test/java/org/springframework/messaging/core/MessageReceivingTemplateTests.java index 29260dc482..b15bc82bda 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/core/MessageReceivingTemplateTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/core/MessageReceivingTemplateTests.java @@ -29,8 +29,7 @@ import org.springframework.messaging.converter.MessageConversionException; import org.springframework.messaging.support.GenericMessage; import static org.hamcrest.CoreMatchers.isA; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; +import static org.junit.Assert.*; import java.io.Writer; @@ -118,10 +117,13 @@ public class MessageReceivingTemplateTests { this.template.setDefaultDestination("home"); this.template.setReceiveMessage(expected); this.template.setMessageConverter(new GenericMessageConverter(new DefaultConversionService())); - - thrown.expect(MessageConversionException.class); - thrown.expectMessage("payload"); - this.template.receiveAndConvert(Writer.class); + try { + this.template.receiveAndConvert(Writer.class); + } + catch (MessageConversionException e) { + assertTrue("Invalid exception message '"+e.getMessage()+"'", e.getMessage().contains("payload")); + assertSame(expected, e.getFailedMessage()); + } }