XMLStreamReader clonedReader;
if (hasPayload()) {
assert unconsumed();
consumedAt = null; // but we don't want to mark it as consumed
MutableXMLStreamBuffer xsb = new MutableXMLStreamBuffer();
//the boolean value tells the first body part is written.
//based on this we do the right thing
StreamReaderBufferCreator c = new StreamReaderBufferCreator(xsb);
while (reader.getEventType() != XMLStreamConstants.END_DOCUMENT) {
String name = reader.getLocalName();
String nsUri = reader.getNamespaceURI();
if (name.equals("Body") && nsUri.equals(soapVersion.nsUri) || (reader.getEventType() == XMLStreamConstants.END_DOCUMENT)) {
break;
}
c.create(reader);
}
XMLStreamReaderFactory.recycle(reader);
reader = xsb.readAsXMLStreamReader();
reader = new VerifiedMessageXMLStreamReader(reader, bodyEnvNs);
clone = xsb.readAsXMLStreamReader();
clonedReader = new VerifiedMessageXMLStreamReader(clone, bodyEnvNs);
// advance to the start tag of the first element
proceedToRootElement(reader);
proceedToRootElement(clonedReader);
} else {