ConverterUtil.compare fails for BigInteger values -------------------------------------------------
Key: AXIS2-4200 URL: https://issues.apache.org/jira/browse/AXIS2-4200 Project: Axis 2.0 (Axis2) Issue Type: Bug Components: adb Affects Versions: 1.4.1 Environment: Axis2 1.4.1, JBoss 4.2, jdk6u10 Reporter: Roman HEINZ 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){ this.localPhoneNumberType=param; } 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) [...] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.