Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I have created a new service called Complex lists which tests arrays within complex types and elements within complext types that have a different namespace to the parent. The request is serialized correctly, but the response fails to deserialize correctly and the stub returns a NULL object to the client. Both the request and response have complex types which contain nillable elements. When the response has nil elements the deserializer throws a SIGSEGV signal.
The 'full' or non-nilled response message is
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<multilistResponse xmlns="http://complexlist.test.apache.org">
<multilistReturn>
<attrlist xmlns="http://complexlistservice.test.apache.org">
<item>
<m_list>
<item>never odd or even</item>
<item>m_list string array element 2</item>
</m_list>
<name>namepair return</name>
</item>
<item>
<m_list>
<item>any data string</item>
<item>m_list string array element 2</item>
</m_list>
<name>namepair2 return</name>
</item>
</attrlist>
<errorcode xmlns="http://complexlistservice.test.apache.org">
7
</errorcode>
<errortext xmlns="http://complexlistservice.test.apache.org">
request successful
</errortext>
</multilistReturn>
</multilistResponse>
</soapenv:Body>
</soapenv:Envelope>
-----------------------------------
This response message does return a value to attrlisterr with the correct errorcode and errortext data, but the nested complex type array does not deserialize correctly. The item->name element is deserialized correctly, but the m_list nested complex type does not.
If any of the elements in the complex response are nil, which is valid as they are nillable, then the deserializer returns a NULL to the client.
If all the elements are nil then the deserilaizer crashes.
Nil response message
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<multilistnilResponse xmlns="http://complexlist.test.apache.org">
<multilistnilReturn>
<attrlist xsi:nil="true" xmlns="http://complexlistservice.test.apache.org"/>
<errorcode xmlns="http://complexlistservice.test.apache.org">
0
</errorcode>
<errortext xsi:nil="true" xmlns="http://complexlistservice.test.apache.org"/>
</multilistnilReturn>
</multilistnilResponse>
</soapenv:Body>
</soapenv:Envelope>
-----------------------------------
Attachments
Issue Links
- incorporates
-
AXISCPP-521 Errors in deserialization of simple type arrays containing nil
- Closed
- is blocked by
-
AXISCPP-511 Deserialization of complex nested arrays broken
- Closed