Details
Description
A range is defined as:
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="999999999999999"/>
</xs:restriction>
The generated databinding calls:
public void setPhoneNumberType(java.math.BigInteger param){
if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, "999999999999999") <= 0)
else
{ throw new java.lang.RuntimeException(); }The ConverterUtil code is:
public static int compare(BigInteger binBigInteger, String value)
{ return binBigInteger.intValue() - Integer.parseInt(value); }This will always fail for values that exceed the capacity of a java.lang.Integer with:
Caused by: java.lang.NumberFormatException: For input string: "999999999999999"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at java.lang.Integer.parseInt(Integer.java:497)
at org.apache.axis2.databinding.utils.ConverterUtil.compare(ConverterUtil.java:1281)
[...]
Attachments
Issue Links
- is cloned by
-
AXIS2-4924 CLONE -ConverterUtil.compare fails for BigInteger values
-
- Resolved
-