From 654ded68984cce948e035db8a407a91d185b60f6 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 14 Oct 2010 18:26:06 -0400 Subject: [PATCH] INT-957, polishing, also going back to throwing MessageRejectionException from XmlValidatingMessageSelector --- .../integration/filter/MessageFilter.java | 18 ++++-------------- .../selector/XmlValidatingMessageSelector.java | 4 +++- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/filter/MessageFilter.java b/spring-integration-core/src/main/java/org/springframework/integration/filter/MessageFilter.java index d81fc8137f..0e4ed71c07 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/filter/MessageFilter.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/filter/MessageFilter.java @@ -100,24 +100,14 @@ public class MessageFilter extends AbstractReplyProducingMessageHandler { @Override protected Object handleRequestMessage(Message message) { - Throwable filterException = null; - try { - if (this.selector.accept(message)) { - return message; - } - } catch (Exception e) { - filterException = e; - } + if (this.selector.accept(message)) { + return message; + } if (this.discardChannel != null) { this.getMessagingTemplate().send(this.discardChannel, message); } if (this.throwExceptionOnRejection) { - if (filterException != null){ - throw new MessageRejectedException(message, "MessageFilter '" + this.getComponentName() + "' rejected Message", filterException); - } - else { - throw new MessageRejectedException(message, "MessageFilter '" + this.getComponentName() + "' rejected Message"); - } + throw new MessageRejectedException(message, "MessageFilter '" + this.getComponentName() + "' rejected Message"); } return null; } diff --git a/spring-integration-xml/src/main/java/org/springframework/integration/xml/selector/XmlValidatingMessageSelector.java b/spring-integration-xml/src/main/java/org/springframework/integration/xml/selector/XmlValidatingMessageSelector.java index 0d0b3e9900..1ab0b12ce3 100644 --- a/spring-integration-xml/src/main/java/org/springframework/integration/xml/selector/XmlValidatingMessageSelector.java +++ b/spring-integration-xml/src/main/java/org/springframework/integration/xml/selector/XmlValidatingMessageSelector.java @@ -19,6 +19,7 @@ package org.springframework.integration.xml.selector; import org.springframework.core.io.Resource; import org.springframework.integration.Message; import org.springframework.integration.MessageHandlingException; +import org.springframework.integration.MessageRejectedException; import org.springframework.integration.core.MessageSelector; import org.springframework.integration.xml.AggregatedXmlMessageValidationException; import org.springframework.integration.xml.DefaultXmlPayloadConverter; @@ -76,7 +77,8 @@ public class XmlValidatingMessageSelector implements MessageSelector { } boolean validationSuccess = ObjectUtils.isEmpty(validationExceptions); if (!validationSuccess && throwExceptionOnRejection){ - throw new AggregatedXmlMessageValidationException(CollectionUtils.arrayToList(validationExceptions)); + throw new MessageRejectedException(message, "Message was rejected due to XML Validation errors", + new AggregatedXmlMessageValidationException(CollectionUtils.arrayToList(validationExceptions))); } return validationSuccess; }