diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java index eda9887d..3d8399ec 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java @@ -270,6 +270,7 @@ public class Saaj11Implementation implements SaajImplementation { public void removeContents(SOAPElement element) { for (Iterator iterator = element.getChildElements(); iterator.hasNext();) { + iterator.next(); iterator.remove(); } } diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/AbstractSaajImplementationTestCase.java b/core/src/test/java/org/springframework/ws/soap/saaj/AbstractSaajImplementationTestCase.java index 330e928b..14c185ad 100644 --- a/core/src/test/java/org/springframework/ws/soap/saaj/AbstractSaajImplementationTestCase.java +++ b/core/src/test/java/org/springframework/ws/soap/saaj/AbstractSaajImplementationTestCase.java @@ -277,4 +277,12 @@ public abstract class AbstractSaajImplementationTestCase extends XMLTestCase { assertNotNull("No attachment part", attachmentPart); } + public void testRemoveContents() throws Exception { + body.addBodyElement(new QName("foo", "bar")); + + assertTrue("Body has child nodes", body.hasChildNodes()); + implementation.removeContents(message.getSOAPBody()); + assertFalse("Body has child nodes", body.hasChildNodes()); + } + } \ No newline at end of file