You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by ss...@jbaw.iba.com.by on 2000/09/25 16:30:40 UTC

SOAP Body marshall/unmarshall bug

Hello !

I'm sorry if this has been already discussed and/or fixed. Looks like
there's a bug in the
org.apache.soap.Body class. Its marshall and unmarshall methods are
inconsistent.

Body.marshall() {
...
  for (Enumeration e = bodyEntries.elements(); e.hasMoreElements();)
  {
    Bean bodyEntry = (Bean)e.nextElement();

    if (Serializer.class.isAssignableFrom(bodyEntry.type))
    {
      ((Serializer)bodyEntry.value).marshall(actualEncStyle,
bodyEntry.type, bodyEntry.value, null, sink, nsStack, xjmr);
    }
    else
    {
      throw new IllegalArgumentException("Body entries must implement " +
"the Serializer interface.");
    }
  }
...
}
 - Assumes that body entries are instances of the class Bean.

Body.unmarshall() {
...
  for (Element el = DOMUtils.getFirstChildElement(root); el != null; el =
DOMUtils.getNextSiblingElement(el))
  {
    bodyEntries.addElement(el);
  }
...
}
- Fills bodyEntries vector with Element objects (???)

Best regards,
Sergey