diff --git a/spring-integration-xml/src/main/java/org/springframework/integration/xml/DefaultXmlPayloadConverter.java b/spring-integration-xml/src/main/java/org/springframework/integration/xml/DefaultXmlPayloadConverter.java index 9ab26ea94b..3b7ea3853b 100644 --- a/spring-integration-xml/src/main/java/org/springframework/integration/xml/DefaultXmlPayloadConverter.java +++ b/spring-integration-xml/src/main/java/org/springframework/integration/xml/DefaultXmlPayloadConverter.java @@ -71,12 +71,7 @@ public class DefaultXmlPayloadConverter implements XmlPayloadConverter { } else if (object instanceof DOMSource) { Node node = ((DOMSource) object).getNode(); - if (node instanceof Document) { - return (Document) node; - } - else { - return nodeToDocument(node); - } + return nodeToDocument(node); } else if (object instanceof Source) { InputSource inputSource = sourceToInputSource((Source) object); @@ -111,6 +106,9 @@ public class DefaultXmlPayloadConverter implements XmlPayloadConverter { } protected Document nodeToDocument(Node node) { + if (node instanceof Document) { + return (Document) node; + } Document document = getDocumentBuilder().newDocument(); document.appendChild(document.importNode(node, true)); return document; diff --git a/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/UnmarshallingTransformer.java b/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/UnmarshallingTransformer.java index 82902df003..1f1e6dafd8 100644 --- a/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/UnmarshallingTransformer.java +++ b/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/UnmarshallingTransformer.java @@ -19,6 +19,7 @@ package org.springframework.integration.xml.transformer; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.io.UncheckedIOException; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; @@ -29,7 +30,6 @@ import org.w3c.dom.Document; import org.springframework.integration.transformer.AbstractPayloadTransformer; import org.springframework.integration.xml.source.DomSourceFactory; import org.springframework.integration.xml.source.SourceFactory; -import org.springframework.messaging.MessagingException; import org.springframework.oxm.Unmarshaller; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -96,8 +96,7 @@ public class UnmarshallingTransformer extends AbstractPayloadTransformer + "failed to transform message, payload not assignable from " + Source.class.getName() + + "and no conversion possible"); + return this.unmarshaller.unmarshal(source); } catch (IOException e) { - throw new MessagingException("failed to unmarshal payload", e); + throw new UncheckedIOException("failed to unmarshal payload", e); } } diff --git a/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/XsltPayloadTransformer.java b/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/XsltPayloadTransformer.java index 0f00ceed31..39741885fb 100644 --- a/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/XsltPayloadTransformer.java +++ b/spring-integration-xml/src/main/java/org/springframework/integration/xml/transformer/XsltPayloadTransformer.java @@ -156,9 +156,9 @@ public class XsltPayloadTransformer extends AbstractXmlTransformer implements Be String transformerFactoryClassName) { Assert.notNull(xslResource, "'xslResource' must not be null."); - Assert.isTrue(xslResource instanceof ClassPathResource || // NOSONAR boolean complexity + Assert.isTrue(xslResource instanceof ClassPathResource || xslResource instanceof FileSystemResource || - xslResource instanceof VfsResource || + xslResource instanceof VfsResource || // NOSONAR boolean complexity (SERVLET_CONTEXT_RESOURCE_CLASS != null && SERVLET_CONTEXT_RESOURCE_CLASS.isInstance(xslResource)), "Only 'ClassPathResource', 'FileSystemResource', 'ServletContextResource' or 'VfsResource'" +