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

Reply via email to