You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Milos Ratkovic (JIRA)" <ji...@apache.org> on 2008/04/24 20:03:22 UTC
[jira] Updated: (AXIS2-3764) Generated classes for simpleType based
on dateTime result in wrong serialization/deserialization if that type is
used as attribute.
[ https://issues.apache.org/jira/browse/AXIS2-3764?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Milos Ratkovic updated AXIS2-3764:
----------------------------------
Description:
simpleType based on dateTime when used as attribute generates following serialization :
datumVreme="java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ...
Parser expects this format (ConverterUtil : convertToDateTime):
// '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (Z)?
Example :
wsdl :
...
<xsd:simpleType name="DatumVreme">
<xsd:restriction base="xsd:dateTime" />
</xsd:simpleType>
<xsd:element name="InOut">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="datumVreme" type="tns:DatumVreme" />
</xsd:complexType>
</xsd:element>
...
Exception:
Exception in thread "main" java.lang.NumberFormatException: in valid time zone attribute
at org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(ConverterUtil.java:609)
at org.example.www.testdatetime.DatumVreme$Factory.fromString(DatumVreme.java:309)
at org.example.www.testdatetime.InOut$Factory.parse(InOut.java:436)
at org.example.www.testdatetime.Test.main(Test.java:42)
Generated code :
InOut :
public void serialize(final javax.xml.namespace.QName parentQName,
...
writeAttribute("", "datumVreme", localDatumVreme.toString(), xmlWriter);
...
public static InOut parse(javax.xml.stream.XMLStreamReader reader)
...
object.setDatumVreme(org.example.www.testdatetime.DatumVreme.Factory.fromString(
tempAttribDatumVreme, ""));
...
DatumVreme:
protected java.util.Calendar localDatumVreme;
public java.lang.String toString() {
return localDatumVreme.toString(); // java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ....
}
...
public static class Factory {
public static DatumVreme fromString(java.lang.String value,
...
returnValue.setDatumVreme(org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(
value));
...
My workaround is to change toString method in generated class:
public java.lang.String toString() {
//return localDatumVreme.toString();
return org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDatumVreme);
}
So I guess fix could be to change code generation for toString method.
There is possibility for similar behavior in case of other based types.
was:
SimpleType has base of dateTime when used as attribute generates following serialization :
datumVreme="java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ...
Parser expects this format (ConverterUtil : convertToDateTime):
// '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (Z)?
Example :
wsdl :
...
<xsd:simpleType name="DatumVreme">
<xsd:restriction base="xsd:dateTime" />
</xsd:simpleType>
<xsd:element name="InOut">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="datumVreme" type="tns:DatumVreme" />
</xsd:complexType>
</xsd:element>
...
Exception:
Exception in thread "main" java.lang.NumberFormatException: in valid time zone attribute
at org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(ConverterUtil.java:609)
at org.example.www.testdatetime.DatumVreme$Factory.fromString(DatumVreme.java:309)
at org.example.www.testdatetime.InOut$Factory.parse(InOut.java:436)
at org.example.www.testdatetime.Test.main(Test.java:42)
Generated code :
InOut :
public void serialize(final javax.xml.namespace.QName parentQName,
...
writeAttribute("", "datumVreme", localDatumVreme.toString(), xmlWriter);
...
public static InOut parse(javax.xml.stream.XMLStreamReader reader)
...
object.setDatumVreme(org.example.www.testdatetime.DatumVreme.Factory.fromString(
tempAttribDatumVreme, ""));
...
DatumVreme:
protected java.util.Calendar localDatumVreme;
public java.lang.String toString() {
return localDatumVreme.toString(); // java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ....
}
...
public static class Factory {
public static DatumVreme fromString(java.lang.String value,
...
returnValue.setDatumVreme(org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(
value));
...
My workaround is to change toString method in generated class:
public java.lang.String toString() {
//return localDatumVreme.toString();
return org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDatumVreme);
}
So I guess fix could be to change code generation for toString method.
There is possibility for similar behavior in case of other based types.
Summary: Generated classes for simpleType based on dateTime result in wrong serialization/deserialization if that type is used as attribute. (was: Generated classes for SimpleType has base of dateTime result in wrong serialization/deserialization if that type is used as attribute. )
> Generated classes for simpleType based on dateTime result in wrong serialization/deserialization if that type is used as attribute.
> ------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-3764
> URL: https://issues.apache.org/jira/browse/AXIS2-3764
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: codegen
> Affects Versions: 1.3
> Environment: Eclipse 3.3, axis2 1.3 , java 6.
> Reporter: Milos Ratkovic
> Priority: Minor
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> simpleType based on dateTime when used as attribute generates following serialization :
> datumVreme="java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ...
> Parser expects this format (ConverterUtil : convertToDateTime):
> // '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (Z)?
> Example :
> wsdl :
> ...
> <xsd:simpleType name="DatumVreme">
> <xsd:restriction base="xsd:dateTime" />
> </xsd:simpleType>
> <xsd:element name="InOut">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="in" type="xsd:string"/>
> </xsd:sequence>
> <xsd:attribute name="datumVreme" type="tns:DatumVreme" />
> </xsd:complexType>
> </xsd:element>
> ...
> Exception:
> Exception in thread "main" java.lang.NumberFormatException: in valid time zone attribute
> at org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(ConverterUtil.java:609)
> at org.example.www.testdatetime.DatumVreme$Factory.fromString(DatumVreme.java:309)
> at org.example.www.testdatetime.InOut$Factory.parse(InOut.java:436)
> at org.example.www.testdatetime.Test.main(Test.java:42)
> Generated code :
> InOut :
> public void serialize(final javax.xml.namespace.QName parentQName,
> ...
> writeAttribute("", "datumVreme", localDatumVreme.toString(), xmlWriter);
> ...
> public static InOut parse(javax.xml.stream.XMLStreamReader reader)
> ...
> object.setDatumVreme(org.example.www.testdatetime.DatumVreme.Factory.fromString(
> tempAttribDatumVreme, ""));
> ...
> DatumVreme:
> protected java.util.Calendar localDatumVreme;
> public java.lang.String toString() {
> return localDatumVreme.toString(); // java.util.GregorianCalendar[time=1209044290989,areFieldsSet=true, ....
> }
> ...
> public static class Factory {
> public static DatumVreme fromString(java.lang.String value,
> ...
> returnValue.setDatumVreme(org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(
> value));
> ...
> My workaround is to change toString method in generated class:
> public java.lang.String toString() {
> //return localDatumVreme.toString();
> return org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDatumVreme);
> }
> So I guess fix could be to change code generation for toString method.
> There is possibility for similar behavior in case of other based types.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org