axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Sauthier (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-1838) Array deserialization
Date Fri, 18 Mar 2005 14:46:20 GMT
     [ http://issues.apache.org/jira/browse/AXIS-1838?page=comments#action_61211 ]
     
Guillaume Sauthier commented on AXIS-1838:
------------------------------------------

After a look at JavaBeanHelperWriter, I've found this :

                    if ((elemType.getDimensions().length() > 1)
                            && (elemType.getClass() == DefinedType.class)) {

                        // If we have a DefinedType with dimensions, it must
                        // be a SOAP array derived type.  In this case, use
                        // the refType's QName for the metadata.
                        xmlType = elemType.getRefType().getQName();
                    } else {

                        // Otherwise, use the type at the end of the ref
                        // chain.
                        while (elemType.getRefType() != null) {
                            elemType = elemType.getRefType();
                        }

                        xmlType = elemType.getQName();
                    }

Seems that using in the Helper the component type of the Array is a wanted behavior.

I persists to think that the serialized element should send an xsi:type="impl:ArrayOf_xsd_short"
instead of short.
The BeanDeserializer retrieve the child xsi:type (xsd:short here), then, it ask the Context
for a Deserializer.
The Context is called with (QName xsd:short, Class short[]) and returns a SimpleDeserializer.
At this point, we should have an ArrayDeserializer, isn't it ?

I've tried to force the child xml type (to {http://test.wsdl.roundtrip}ArrayOf_xsd_short)
and the test case has passed.

Any ideas ?



> Array deserialization
> ---------------------
>
>          Key: AXIS-1838
>          URL: http://issues.apache.org/jira/browse/AXIS-1838
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2RC3
>  Environment: JOnAS 4.3.3
>     Reporter: Guillaume Sauthier
>     Assignee: Glen Daniels
>     Priority: Blocker
>  Attachments: axis-array-deser-error-patch.txt, diff.patch
>
> When running TCK for JOnAS, sometimes, I fall on array deserialization issue :
> The SOAP Message contains 3 elements of the array, but the constructed array only has
the last element. So its size is 1, instead of 3!
> The problem only occurs when using Array with Helper :
> ArrayofBook
> -> Book[] arrayOfBook
> +
> ArrayOfBook_Helper
> I'll attach a patch for test.holders that reproduce this problem.
> failures will appear for testInOutBookArray

-- 
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


Mime
View raw message