Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-5342

Generated code for xsd:totalDigits cause errors

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.6.2
    • 1.6.3, 1.7.0
    • adb, codegen
    • None

    Description

      If you have a element like

      <xsd:simpleType name="abc">
      <xsd:restriction base="xsd:integer">
      <xsd:totalDigits value="5" />
      </xsd:restriction>
      </xsd:simpleType>

      axis generates this as source code

      public void setAbc(java.math.BigInteger param){
      java.lang.String totalDigitsDecimal = org.apache.axis2.databinding.utils.ConverterUtil.convertToStandardDecimalNotation("5").toString();
      if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, totalDigitsDecimal) > 0)

      { this.localHerkunftsschluessel=param; }

      else

      { throw new java.lang.RuntimeException(); }

      }

      The problem is the toString() of the result from .convertToStandardDecimalNotation("5"). It converts the a BigDecimal into String and this results in "10000.0". Then ConverterUtil.compare() trys to convert this string into a Long. BANG.

      Please change convertToStandardDecimalNotation().toString() into convertToStandardDecimalNotation().toPlainString().

      The same functionality should be evaluated for xsd:int, xsd:float, xsd:decimal ...

      IMHO, this results from a bad implementation of AXIS2-4190. Please add testcases for this.

      Take a look at the following comment and below.

      https://issues.apache.org/jira/browse/AXIS2-4190?focusedCommentId=13285198&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13285198

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              azgard Conny Kreyßel
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: