From e4ad9c5204196e35a616b80c0a53df80e04af2ce Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 30 May 2014 14:53:09 +0200 Subject: [PATCH] polishing If no converter is found, the MessageConversionException now contains the message instance that could not be handled Issue: SPR-11817 --- .../core/AbstractMessageReceivingTemplate.java | 4 ++-- .../core/MessageReceivingTemplateTests.java | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) 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()); + } }