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