[ 
https://issues.apache.org/jira/browse/AXISCPP-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474779
 ] 

Wayne Johnson commented on AXISCPP-1015:
----------------------------------------

Well, tried my patch and it didn't help.

The wsdl I'm using has the structure:
   <complexType name="SWSUser">
    <sequence>
     <element name="DN" nillable="true" type="xsd:string"/>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="groups" nillable="true" type="impl:ArrayOf_xsd_string"/>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="properties" nillable="true" type="impl:ArrayOfSWSProperty"/>
     <element name="uid" type="xsd:int"/>
    </sequence>
   </complexType>

As I step through the code, properties is an array of length 0.  We go into 
SoapDeSerializer::getCmplxArray, see the array length of zero, return to my 
SWSUser DeSerializer, where it then attempt to parse uid.  But 
getElementAsInt() errors out because it sees m_pNode->m_pchNameOrValue is still 
"properties".

Any ideas, short of making sure I don't have any 0 length arrays?

The soap packet looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <soapenv:Body>
    <ns1:getUserProfileResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns1="urn:SWS">
      <getUserProfileReturn xsi:type="ns1:SWSUser">
        <DN xsi:type="xsd:string">uid=SA,ou=users,dc=mqsoftware,dc=com</DN>
        <description xsi:type="xsd:string">Default System Administrator User 
Id</description>
        <groups soapenc:arrayType="xsd:string[2]" xsi:type="soapenc:Array" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>
          <groups xsi:type="xsd:string">Management Console 
Administrators</groups>
          <groups xsi:type="xsd:string">database_login</groups>
        </groups>
        <name xsi:type="xsd:string">System Administrator</name>
        <properties xsi:type="ns1:SWSProperty" xsi:nil="true"/>
        <uid xsi:type="xsd:int">5</uid>
      </getUserProfileReturn>
    </ns1:getUserProfileResponse>
  </soapenv:Body>
</soapenv:Envelope>

> Error deserializing empty array within a structure
> --------------------------------------------------
>
>                 Key: AXISCPP-1015
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1015
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: Serialization
>    Affects Versions:  1.6 Beta
>         Environment: Sending response from Java AXIS Server
>            Reporter: Wayne Johnson
>             Fix For: current (nightly)
>
>         Attachments: SOAP-1015.xml, SoapDeSerializer.patch, SWS.wsdl
>
>
> I am returning a structure that contains an array of structures.  If I return 
> that array with no elements, the SoapDeSerializer::getArraySize method 
> returns a -1. 
>  
> Then SoapDeSerializer::getCmplxArray falls into the error path, and returns 
> AXIS_FAIL.  My stub deserializer for the outside structure sees the FAIL 
> status and returns the FAIL to SoapDeSerializer::getCmplxObject and 
> everything percolates back to my client where a NULL is returned to the 
> client instead of my structure.
> The same SOAP response seems to work fine on the Axis Java client. 
> I'm working on the svn trunk.  
> Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to