Complex response containing array of complex elements does not deserialize
--------------------------------------------------------------------------
Key: AXISCPP-515
URL: http://issues.apache.org/jira/browse/AXISCPP-515
Project: Axis-C++
Type: Bug
Components: Deserialization
Reporter: Andrew Perry
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>
-----------------------------------
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira