Agreed.
But there is a small catch here. Can someone call detach() method of
SOAPBody as SOAP messages must always have a body element.
For me this is a chicken and egg problem. Lets say you have a SOAP Envelope
with a SOAPBody. Now you need to put a different SOAPBody. How can you do
this ??
1. envelope.getBody().detach();
envelope.addChild(newSOAPBodyElement);
2. envelope.addBody(newSOAPBody);
public class SOAPEnvelopeImpl{
private SOAPBody soapBody;
public void addBody(SOAPBody newSOAPBody){
if(soapBody != null){
soapBody.detach();
}
this.addChild(newSOAPBody);
this.soapBody = newSOAPBody;
}
}
So Shahi, what do u think ? Shall we not expose the detach() method of
SOAPBody and use the option 2 .
Regards,
Chinthaka
________________________________________
From: Shahi, Ashutosh [mailto:[EMAIL PROTECTED]
Sent: Wednesday, April 13, 2005 3:20 PM
To: [email protected]
Subject: [Axis2] getBody() method in SOAPEnvelopeImpl
Hi Eran,
����������� �In getBody() method of SOAPEnvelopeImpl we do a
getNextSiblingElement() call on SOAPHeader expecting to get a SOAPBody. But
the SOAPBody might have already been removed through the detach() method and
we are not taking care of that. As a result we get a NullPointerException
from the method. A simple If() test on �element� to see if it is null should
solve the issue.
Thanks,
Ashutosh