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

Bill Minglei Zhang edited comment on AXIS2-5342 at 11/6/13 12:48 AM:
---------------------------------------------------------------------

The following code was generated using axis2-1.6.2,  it's *.compare(param, 
totalDigitsDecimal) > 0*, should be *<*, correct?
{code:java}
    public void setDecimal154(java.math.BigDecimal param) {

        java.lang.String totalDigitsDecimal = 
org.apache.axis2.databinding.utils.ConverterUtil
                .convertToStandardDecimalNotation("15").toString();
        if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, 
totalDigitsDecimal) > 0) {
            this.localDecimal154 = param;
        } else {
            throw new java.lang.RuntimeException();
        }

    }
{code}

{code:xml}<xs:simpleType name="decimal-15-4">
        <xs:restriction base="xs:decimal">
                <xs:fractionDigits value="4" />
                <xs:totalDigits value="15" />
        </xs:restriction>
</xs:simpleType>{code}


was (Author: autoaim800):
The following code was generated using axis2-1.6.2,  it's *.compare(param, 
totalDigitsDecimal) > 0*, should be *<*, correct?
{code:java}
    public void setDecimal154(java.math.BigDecimal param) {

        java.lang.String totalDigitsDecimal = 
org.apache.axis2.databinding.utils.ConverterUtil
                .convertToStandardDecimalNotation("15").toString();
        if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, 
totalDigitsDecimal) > 0) {
            this.localDecimal154 = param;
        } else {
            throw new java.lang.RuntimeException();
        }

    }
{code}

> Generated code for xsd:totalDigits cause errors
> -----------------------------------------------
>
>                 Key: AXIS2-5342
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5342
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb, codegen
>    Affects Versions: 1.6.2
>            Reporter: Conny Kreyßel
>             Fix For: 1.7.0, 1.6.3
>
>
> 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



--
This message was sent by Atlassian JIRA
(v6.1#6144)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to