DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16082>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16082 bug in ElementDeserializer Summary: bug in ElementDeserializer Product: Axis Version: 1.1beta Platform: All OS/Version: All Status: NEW Severity: Normal Priority: Other Component: Serialization/Deserialization AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] there seems to be a problem with ElementDeserializer.onEndElement. i have run into it while trying out IBM's wsdk, specifically one of their sample apps. i can provide details if necessary. the response was as follows: RESPONSE: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xm lns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XML Schema-instance"> <SOAP-ENV:Body> <ns1:getAddressFromNameResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap .org/soap/encoding/" xmlns:ns1="http://www.addressbookservice.com/AddressBook"> <getAddressFromNameResult xsi:type="ns2:AddressType" xmlns:ns2="http://www.ad dressbookservice.com/AddressBook-types"> <streetNum xsi:type="xsd:int">111</streetNum> <streetName xsi:type="xsd:string">Main St.</streetName> <city xsi:type="xsd:string">Raleigh</city> <state xsi:type="xsd:string">NC</state> <zip xsi:type="xsd:int">27513</zip> <phoneNumber xsi:type="ns2:phoneNumberType"> <areaCode xsi:type="xsd:int">919</areaCode> <exchange xsi:type="xsd:string">334</exchange> <number xsi:type="xsd:string">8765</number> </phoneNumber> </getAddressFromNameResult> </ns1:getAddressFromNameResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> and what came out of the ElementDeserializer was this: <streetNum xsi:type="xsd:int">111</streetNum> seems to be caused by this chunk of code: ArrayList children = msgElem.getChildren(); if ( children != null ) { msgElem = (MessageElement) children.get(0); if ( msgElem != null ) { value = msgElem.getAsDOM(); } } } notice how only the first child is considered. a potential fix, which worked ok for my case is to replace this code with the following: ArrayList children = msgElem.getChildren(); if ( children != null ) { if (children.size() > 1) { value = msgElem.getAsDOM(); } else { msgElem = (MessageElement) children.get(0); if ( msgElem != null ) { value = msgElem.getAsDOM(); } } }