From b3ba4c4426ad4ced1660decdeff9361f37586079 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Thu, 22 Nov 2007 11:30:02 +0000 Subject: [PATCH] SWS-241 --- .../ws/server/endpoint/support/PayloadRootUtils.java | 12 ++++++++---- .../endpoint/support/PayloadRootUtilsTest.java | 8 +++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java b/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java index e4812508..12c65144 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java @@ -27,11 +27,12 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.springframework.xml.namespace.QNameUtils; -import org.springframework.xml.transform.StaxSource; import org.w3c.dom.Document; import org.w3c.dom.Node; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.transform.StaxSource; + /** * Helper class for determining the root qualified name of a Web Service payload. * @@ -49,11 +50,14 @@ public abstract class PayloadRootUtils { * * @param source the source to get the root element from * @param transformerFactory a transformer factory, necessary if the given source is not a DOMSource - * @return the root element + * @return the root element, or null if source is null */ public static QName getPayloadRootQName(Source source, TransformerFactory transformerFactory) throws TransformerException, XMLStreamException { - if (source instanceof DOMSource) { + if (source == null) { + return null; + } + else if (source instanceof DOMSource) { DOMSource domSource = (DOMSource) source; Node node = domSource.getNode(); if (node.getNodeType() == Node.ELEMENT_NODE) { diff --git a/core/src/test/java/org/springframework/ws/server/endpoint/support/PayloadRootUtilsTest.java b/core/src/test/java/org/springframework/ws/server/endpoint/support/PayloadRootUtilsTest.java index 6c522765..83d7f31f 100644 --- a/core/src/test/java/org/springframework/ws/server/endpoint/support/PayloadRootUtilsTest.java +++ b/core/src/test/java/org/springframework/ws/server/endpoint/support/PayloadRootUtilsTest.java @@ -29,11 +29,12 @@ import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamSource; import junit.framework.TestCase; -import org.springframework.xml.transform.StaxSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.InputSource; +import org.springframework.xml.transform.StaxSource; + public class PayloadRootUtilsTest extends TestCase { public void testGetQNameForDomSource() throws Exception { @@ -81,4 +82,9 @@ public class PayloadRootUtilsTest extends TestCase { assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI()); assertEquals("Qname has invalid prefix", "prefix", qName.getPrefix()); } + + public void testGetQNameForNullSource() throws Exception { + QName qName = PayloadRootUtils.getPayloadRootQName(null, TransformerFactory.newInstance()); + assertNull("Qname returned", qName); + } } \ No newline at end of file