[
https://issues.apache.org/jira/browse/AXIS2-4190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285198#comment-13285198
]
Hannes Erven commented on AXIS2-4190:
-------------------------------------
For me, the change introduced in r1299667 continously generates
RuntimeExceptions.
See
axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
at about line 490:
The problem seems to lie in
ConverterUtil.convertToStandardDecimalNotation("31").toString() which returns
10E31. I guess that should rather be
ConverterUtil.convertToStandardDecimalNotation("31").toPlainString() the
retrieve the full number.
Furthermore, it seems that the next line's comparison is done just the wrong
way round: set the value if it is greater than the maximum?
+ if
(org.apache.axis2.databinding.utils.ConverterUtil.compare(param,
totalDigitsDecimal) > 0){
+ this.<xsl:value-of
select="$varName"/>=param;
+ }
+ else {
+ throw new
java.lang.RuntimeException();
+ }
Since the issues I get are all in the generated code they are easy to work
around.
> WSDL2JAVA Not generating code for <xsd:totalDigits> when databinding is ADB.
> ----------------------------------------------------------------------------
>
> Key: AXIS2-4190
> URL: https://issues.apache.org/jira/browse/AXIS2-4190
> Project: Axis2
> Issue Type: Bug
> Components: adb, codegen
> Affects Versions: 1.3, 1.4, 1.4.1
> Environment: Any
> Reporter: Colin Anderson
> Assignee: Kishanthan Thangarajah
> Fix For: 1.6.2, 1.7.0
>
> Attachments: AXIS2-4190.patch
>
>
> I have the following definition in an XSD:
> <xsd:simpleType name="tariffID">
> <xsd:annotation>
> <xsd:documentation>Standard tariff ID</xsd:documentation>
> </xsd:annotation>
> <xsd:restriction base="xsd:int">
> <xsd:totalDigits value="7"/>
> </xsd:restriction>
> </xsd:simpleType>
> When I generate the Java code I get the TariffID type as expected, but in the
> generated setTariffID(int) method, there is no code generated that captures
> the <xsd:totalDigits> restriction:
> /**
> * Auto generated setter method
> * @param param TariffID
> */
> public void setTariffID(int param){
> this.localTariffID=param;
> }
> If I then add either <xsd:pattern> or <xsd:minInclusive> and
> <xsd:maxInclusive> to the XSD then these restrictions are captured in the
> generated code. For example, this:
> <xsd:simpleType name="tariffID">
> <xsd:annotation>
> <xsd:documentation>Standard tariff ID</xsd:documentation>
> </xsd:annotation>
> <xsd:restriction base="xsd:int">
> <xsd:totalDigits value="7"/>
> <xsd:minInclusive value="0"/>
> <xsd:maxInclusive value="9999999"/>
> </xsd:restriction>
> </xsd:simpleType>
> results in the following Java code being generated:
> /**
> * Auto generated setter method
> * @param param TariffID
> */
> public void setTariffID(int param){
> if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param,
> "9999999") <= 0){
> this.localTariffID=param;
> }
> else {
> throw new java.lang.RuntimeException();
> }
> if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, "0") >=
> 0){
> this.localTariffID=param;
> }
> else {
> throw new java.lang.RuntimeException();
> }
> }
> I and others on the user mailing list believe this is a bug in the ADB
> databinding code generation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]