Index: /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/main/org/codehaus/xfire/util/stax/W3CDOMStreamReader.java =================================================================== --- /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/main/org/codehaus/xfire/util/stax/W3CDOMStreamReader.java (revision 2085) +++ /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/main/org/codehaus/xfire/util/stax/W3CDOMStreamReader.java (working copy) @@ -148,8 +148,9 @@ getCurrentFrame().ended = true; currentEvent = END_ELEMENT; endElement(); - - return DOMUtils.getContent(content); + String result = DOMUtils.getContent(content); + // we should not return null according to the StAx API javadoc + return result != null ? result : ""; } public String getNamespaceURI(String prefix) Index: /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/test/org/codehaus/xfire/util/stax/W3CDOMStreamReaderTest.java =================================================================== --- /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/test/org/codehaus/xfire/util/stax/W3CDOMStreamReaderTest.java (revision 2085) +++ /home/bruyeron/workspace3/xfire-trunk/xfire-core/src/test/org/codehaus/xfire/util/stax/W3CDOMStreamReaderTest.java (working copy) @@ -101,4 +101,13 @@ W3CDOMStreamReader reader = new W3CDOMStreamReader(e); testElementChild(reader); } + + public void testEmptyElement() throws Exception + { + Document doc = getDocument(); + Element e = doc.createElementNS("urn:test","root"); + W3CDOMStreamReader reader = new W3CDOMStreamReader(e); + assertNotNull(reader.getElementText()); + assertEquals("", reader.getElementText()); + } }