axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Bartley (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] Updated: (AXISCPP-418) Deserialization of arrays of complex elements with nil members
Date Mon, 14 Feb 2005 04:39:11 GMT
     [ http://issues.apache.org/jira/browse/AXISCPP-418?page=history ]

Tim Bartley updated AXISCPP-418:
--------------------------------

    Attachment: Complex2.wsdl

I think there may be two problems. The behaviour shown by the first wsdl I attached seesm
to be a different problem. The problem I originally reported is reproduced by this WSDL (see
also axis2.trace for the corresponding Ethereal trace).

There are four entries of the array being returned. The third one has it's "value1" member
set to null. When returned the third entrie's value2 and value3 are reported as NULL by Axis
even though values were included in the body. Also, the fourth entry is omitted by Axis even
though it was correctly returned by the Web service.

> 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: 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