Skip to content

Commit d149ed7

Browse files
committed
SWS-241 in 1.0 branch
1 parent 88e95b9 commit d149ed7

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@
2727
import javax.xml.transform.dom.DOMResult;
2828
import javax.xml.transform.dom.DOMSource;
2929

30-
import org.springframework.xml.namespace.QNameUtils;
31-
import org.springframework.xml.transform.StaxSource;
3230
import org.w3c.dom.Document;
3331
import org.w3c.dom.Node;
3432

33+
import org.springframework.xml.namespace.QNameUtils;
34+
import org.springframework.xml.transform.StaxSource;
35+
3536
/**
3637
* Helper class for determining the root qualified name of a Web Service payload.
3738
*
@@ -49,11 +50,14 @@ private PayloadRootUtils() {
4950
*
5051
* @param source the source to get the root element from
5152
* @param transformerFactory a transformer factory, necessary if the given source is not a <code>DOMSource</code>
52-
* @return the root element
53+
* @return the root element, or <code>null</code> if <code>source</code> is <code>null</code>
5354
*/
5455
public static QName getPayloadRootQName(Source source, TransformerFactory transformerFactory)
5556
throws TransformerException, XMLStreamException {
56-
if (source instanceof DOMSource) {
57+
if (source == null) {
58+
return null;
59+
}
60+
else if (source instanceof DOMSource) {
5761
DOMSource domSource = (DOMSource) source;
5862
Node node = domSource.getNode();
5963
if (node.getNodeType() == Node.ELEMENT_NODE) {

core/src/test/java/org/springframework/ws/server/endpoint/support/PayloadRootUtilsTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@
2929
import javax.xml.transform.stream.StreamSource;
3030

3131
import junit.framework.TestCase;
32-
import org.springframework.xml.transform.StaxSource;
3332
import org.w3c.dom.Document;
3433
import org.w3c.dom.Element;
3534
import org.xml.sax.InputSource;
3635

36+
import org.springframework.xml.transform.StaxSource;
37+
3738
public class PayloadRootUtilsTest extends TestCase {
3839

3940
public void testGetQNameForDomSource() throws Exception {
@@ -81,4 +82,9 @@ public void testGetQNameForSaxSource() throws Exception {
8182
assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI());
8283
assertEquals("Qname has invalid prefix", "prefix", qName.getPrefix());
8384
}
85+
86+
public void testGetQNameForNullSource() throws Exception {
87+
QName qName = PayloadRootUtils.getPayloadRootQName(null, TransformerFactory.newInstance());
88+
assertNull("Qname returned", qName);
89+
}
8490
}

0 commit comments

Comments
 (0)