axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank Huebbers (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2C-920) Array size of 0 for nillable variable in deserialization of SOAP messages
Date Fri, 18 Jan 2008 23:48:34 GMT

    [ https://issues.apache.org/jira/browse/AXIS2C-920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12560608#action_12560608
] 

Frank Huebbers commented on AXIS2C-920:
---------------------------------------

Btw, I defined the element as follows in the wsdl file:

<element name="Categories" nillable="false" minOccurs="0" maxOccurs="unbounded" type="Author"
/>

Frank

> Array size of 0 for nillable variable in deserialization of SOAP messages
> -------------------------------------------------------------------------
>
>                 Key: AXIS2C-920
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-920
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: wsdl2c tool
>    Affects Versions: Current (Nightly)
>            Reporter: Frank Huebbers
>
> Hi,
> I am using Axis2/C in one of our applications to talk to our application server running
Axis (java). I have run into problems where the return message isn't parsed because an array
type of size zero with nillable=false is considered to be null by Axis2/C. 
> In other words, I can give the following scenario:
> I want to send a SOAP message describing a book with an array list of authors. In my
wsdl file, I have made the array type for the authors to be nillable=false as null types can
generate problems for me on other systems. I still need to be able to send an empty array
of authors however, to support special cases where no author is known for the book. So, when
a SOAP message is received by my client which uses Axis2/C to deserialize it, I would expect
Axis2/C to be able to recognize that an array of length zero was sent. What the generated
code does instead, however, is that it thinks that the array type was set to null and thus
throws an error. I would consider this to be incorrect behavior. 
> When looking at the SOAP message, I have observed that an array size of 0 for a type
is not distinguishable from an array type which was set to null and then sent. Specifically,
the type is not shown in the message. Which is probably the root cause of this problem. What
I have observed in these cases, however, is that C# and Axis Java are able to figure out that
these array types are not null but arrays of size 0 (when they are defined as nillable=false
in the wsdl files). 
> Considering the facts above, I would thus suggest that the deserialization of the SOAP
message for array types of size 0 follow a similar algorithm as is done in other implementations;
otherwise, people will be forced to use different wsdl files for Axis2/C and other libraries.
> Any comments?
> Thanks for any help and advice in advance.
> Cheers,
> Frank

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


Mime
View raw message