[ http://issues.apache.org/jira/browse/AXISCPP-418?page=history ]
Tim Bartley updated AXISCPP-418:
--------------------------------
Attachment: ComplexStore.wsdl
> Deserialization of arrays of complex elements with nil members
> --------------------------------------------------------------
>
> Key: AXISCPP-418
> URL: http://issues.apache.org/jira/browse/AXISCPP-418
> Project: Axis-C++
> Type: Bug
> Components: Deserialization
> Versions: 1.5 Alpha
> Environment: x86 SuSE SELS-8.1 service pack 3
> Reporter: Tim Bartley
> Attachments: ComplexStore.wsdl, axis.trace
>
> I am using Axis C++ on the client side. One of my operations returns an array
> of:
> typedef struct ComplexTag {
> xsd__string value1;
> xsd__string value2;
> xsd__string value3;
> } Complex;
> typedef struct Complex_ArrayTag {
> Complex** m_Array;
> int m_Size;
> } Complex_Array;
> If one of the array elements has an empty value for the first value (don't
> know whether it's only the first member or whether the fact that it's an
> array is relevant but that's all I've observed) then all the members of the
> Complex with an empty first member are deserialized as NULL and all
> subsequenet elements of the array are ignored.
> The following body fragment illustrates the problem. If the array data is
> returned as (this is being generated by a WebSphere 5.1.1 hosted Web service
> if that's of any interest):
> <data>
> <value1>1 - value1</value1>
> <value2>1 - value2</value2>
> <value3>1 - value3</value3>
> </data>
> <data>
> <value1/>
> <value2>2 - value2</value2>
> <value3>2 - value2</value3>
> </data>
> <data>
> <value1>3 - value1</value1>
> <value2>3 - value2</value2>
> <value3>3 - value3</value3>
> </data>
> Then Axis C++ deserializes the array to me as:
> Complex_Array array;
> array.m_Size == 2
> *array.m_Array[0] == { "1 - value1", "1 - value2", "1 - value3" }
> *array.m_Array[1] == { NULL, NULL, NULL }
> Where I would expect:
> array.m_Size == 3
> *array.m_Array[0] == { "1 - value1", "1 - value2", "1 - value3" }
> *array.m_Array[1] == { NULL, "2 - value2", "2 - value3" }
> *array.m_Array[2] == { "3 - value1", "3 - value2", "3 - value3" }
> I have only tried this with the 1.5 alpha release on Linux.
> Regards,
> Tim Bartley
--
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