[
https://issues.apache.org/jira/browse/AXIS2-3353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549367
]
Mauro Molinari commented on AXIS2-3353:
---------------------------------------
Hi Amila,
I found another problem regarding primitive types.
Now, suppose you have an xsd:element named "parentActivityId" which is not
optional, so it is translated to Java primitive int.
In the ADBBean, the method <TypeName>.serialize(QName, OMFactory,
MTOMAwareXMLStreamWriter, boolean) has some code that does:
if (localParentActivityId==java.lang.Integer.MIN_VALUE) {
throw new org.apache.axis2.databinding.ADBException("parentActivityId cannot
be null!!");
} else {
xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localParentActivityId));
}
Now, if I specify -Euwc I'm expecting, for sure, that if nil is mapped to null,
I can also use Integer. MIN_VALUE as an actual valid integer value for my
parameter.
So, I don't know when this XML serialization method is called, however from
what I see I suspect that the exchange of Integer.MIN_VALUE as a valid value
for parentActivityId is something problematic, because of the piece of code I
reported.
Could you please investigate?
Thank you.
Mauro.
> Use wrapper types when elements are optional (i.e.: nillable="true" or
> minOccurs="0"/maxOccurs="1")
> ---------------------------------------------------------------------------------------------------
>
> Key: AXIS2-3353
> URL: https://issues.apache.org/jira/browse/AXIS2-3353
> Project: Axis 2.0 (Axis2)
> Issue Type: Improvement
> Components: codegen
> Affects Versions: 1.3
> Reporter: Mauro Molinari
> Assignee: Amila Chinthaka Suriarachchi
> Priority: Critical
>
> As of now, Axis2 WSDL2Java uses some weird convetion about "null".
> I mean, when an element in a WSDL is marked as nillable="true" or
> minOccurs="0"/maxOccurs="1", the generated Java code still uses primitives
> types such as int, double, short, long, float, boolean.
> Because of this, I personally experienced (and also read about here in JIRA),
> Axis2 uses the following questionable convention to handle null values:
> int, short, long => Integer.MIN_VALUE, Short.MIN_VALUE, Long. MIN_VALUE
> float, double => Float.NaN, Double.NaN
> boolean => false
> Actually, these values are NOT null.
> I think Axis2 should map optional elements of type xsd:int, xsd:double,
> xsd:float, xsd:short, xsd:long, xsd:boolean to, respectively: Integer,
> Double, Float, Short, Long, Boolean and assign null to them when they are
> specified as nil or when they are not specified in the SOAP message.
> If I understood it well, Axis1 did this, didn't it?
> At least, I think Axis2 should give an option to enable this and, IMHO, I
> also think it should be on by default...
--
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]