[
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]