You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Wayne Johnson (JIRA)" <ax...@ws.apache.org> on 2007/02/21 19:02:06 UTC

[jira] Commented: (AXISCPP-1015) Error deserializing empty array within a structure

    [ 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: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org