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 "Davanum Srinivas (JIRA)" <ax...@ws.apache.org> on 2005/03/16 22:21:41 UTC
[jira] Updated: (AXIS-1746) [MultiRef] SerializationContext.isPrimitive return false for bean property of primitive type
[ http://issues.apache.org/jira/browse/AXIS-1746?page=history ]
Davanum Srinivas updated AXIS-1746:
-----------------------------------
Priority: Major (was: Blocker)
downgrading the bug.
> [MultiRef] SerializationContext.isPrimitive return false for bean property of primitive type
> --------------------------------------------------------------------------------------------
>
> Key: AXIS-1746
> URL: http://issues.apache.org/jira/browse/AXIS-1746
> Project: Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2RC2
> Environment: Tomcat 5.0.16
> JDK 1.4.2_03
> OS Windows 2000
> Architecture x86
> Reporter: Patrick Houbaux
> Attachments: ArraySerialization_MultiRef.xml
>
> Using a RPC web service using complex data types (exposed java beans with primitive type properties).
> Using Multi-Ref because the data type model is a graph.
> BUG: For the primitive type properties of the beans sent through the wire, Axis sent them as multi ref.
> Explanation:
> After a debugging session with the Axis 1.2RC2 source, noticed that the SerializationContext.isPrimitive method in org.apache.axis.encoding return false for these simple types.
> The method public void serialize(QName elemQName,
> Attributes attributes,
> Object value,
> QName xmlType,
> Boolean sendNull,
> Boolean sendType)
> at line 727 is called with a correct xmlType (i.e. (http://www.w3.org/2001/XMLSchema)double for instance) parameter for the simple type but in the body of this method the checking if the value is a primitive (line 802) is not taking into account this correct xmlType.
> In the method isPrimitive the following test(starting at line 609) fails:
> // Note that java.lang wrapper classes (i.e. java.lang.Integer) are
> // not primitives unless the corresponding type is an xsd type.
> // (If the wrapper maps to a soap encoded primitive, it can be nillable
> // and multi-ref'd).
> QName qName = getQNameForClass(javaType);
> if (qName != null && Constants.isSchemaXSD(qName.getNamespaceURI())) {
> if (SchemaUtils.isSimpleSchemaType(qName)) {
> return true;
> }
> }
> During the debug runtime the values in the previous piece of code are the following:
> - javaType = java.lang.Double
> - qName = (http://schemas.xmlsoap.org/soap/encoding/)double
> Why qName don't get the value : (http://www.w3.org/2001/XMLSchema)double?
> Following an example of what is sent through the wire.
> p.s.: Orginally sent in the axis-user mailing list, thread:
> "Axis 1.2RC2: multiref serialization of xsd simple types / interoperability with .NET"
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira