-
Bug
-
Resolution: Done
-
Major
-
jbossws-native-3.4.0
-
None
When there is an issue with the DOM document uncovered in assertParent(), the construction of the exception calls DOMWriter.printNode(). This method ends up recursively calling back to the NodeImpl.getParent() which calls NodeImpl.assertParent(), which fails and starts the whole cycle over again until the thread blows up with a stack overflow. Sample stack trace of the infinite recursion:
at org.jboss.ws.core.soap.NodeImpl.getParentNode(NodeImpl.java:276)
at org.jboss.wsf.common.DOMWriter.getNamespaceURI(DOMWriter.java:518)
at org.jboss.wsf.common.DOMWriter.printInternal(DOMWriter.java:299)
at org.jboss.wsf.common.DOMWriter.print(DOMWriter.java:233)
at org.jboss.wsf.common.DOMWriter.printNode(DOMWriter.java:152)
at org.jboss.ws.core.soap.NodeImpl.assertSOAPParent(NodeImpl.java:588)
at org.jboss.ws.core.soap.NodeImpl.getParentNode(NodeImpl.java:276)
at org.jboss.wsf.common.DOMWriter.getNamespaceURI(DOMWriter.java:518)
at org.jboss.wsf.common.DOMWriter.printInternal(DOMWriter.java:299)
at org.jboss.wsf.common.DOMWriter.print(DOMWriter.java:233)
at org.jboss.wsf.common.DOMWriter.printNode(DOMWriter.java:152)
at org.jboss.ws.core.soap.NodeImpl.assertSOAPParent(NodeImpl.java:588)
at org.jboss.ws.core.soap.NodeImpl.getParentNode(NodeImpl.java:276)
at org.jboss.wsf.common.DOMWriter.getNamespaceURI(DOMWriter.java:518)
at org.jboss.wsf.common.DOMWriter.printInternal(DOMWriter.java:299)
at org.jboss.wsf.common.DOMWriter.print(DOMWriter.java:233)
at org.jboss.wsf.common.DOMWriter.printNode(DOMWriter.java:152)
at org.jboss.ws.core.soap.NodeImpl.assertSOAPParent(NodeImpl.java:588)
at org.jboss.ws.core.soap.NodeImpl.getParentNode(NodeImpl.java:276)
at org.jboss.wsf.common.DOMWriter.getNamespaceURI(DOMWriter.java:518)
at org.jboss.wsf.common.DOMWriter.printInternal(DOMWriter.java:299)
at org.jboss.wsf.common.DOMWriter.print(DOMWriter.java:233)
at org.jboss.wsf.common.DOMWriter.printNode(DOMWriter.java:152)
at org.jboss.ws.core.soap.NodeImpl.assertSOAPParent(NodeImpl.java:588)
This may affect other versions as well but was uncovered using 3.4.0.