axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samisa Abeysinghe (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] Assigned: (AXISCPP-418) Deserialization of arrays of complex elements with nil members
Date Tue, 22 Feb 2005 07:57:49 GMT
     [ http://issues.apache.org/jira/browse/AXISCPP-418?page=history ]

Samisa Abeysinghe reassigned AXISCPP-418:
-----------------------------------------

    Assign To: Samisa Abeysinghe

> 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
>     Assignee: Samisa Abeysinghe
>  Attachments: Complex2.wsdl, ComplexStore.wsdl, axis.trace, axis2.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


Mime
View raw message