[ 
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

Reply via email to