DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17017>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17017

The WSDL2Java generates incorrect type metadata for sequences containing arrays of 
sequences, thus preventing correct deserialization

           Summary: The WSDL2Java generates incorrect type metadata for
                    sequences containing arrays of sequences, thus
                    preventing correct deserialization
           Product: Axis
           Version: 1.1beta
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: WSDL processing
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


When a WSDL describes an element as a sequence of array of sequence, (ie a bean 
with a member property which is an array of beans), the type metadata that is 
generated incorrectly identifies the property.
E.g. if we had
class Moo {
    public Cow[] getBovines()
}
the type metadata give the XML type as Cow instead of ArrayOfCow.

The bug can be fixed by changing line 279 in JavaBeanHelperWriter.
Reproduced in context below: (lines 274-283)

// Some special handling for arrays
TypeEntry elemType = elem.getType();
while (elemType.getRefType() != null) {
    elemType = elemType.getRefType();
}
QName xmlType = elemType.getQName(); // <======= changeme
if (xmlType != null && xmlType.getLocalPart().indexOf("[") > 0) {
    // Skip array types, because they are special
    xmlType = null;
}

the line flagged with the // <======= changeme

QName xmlType = elemType.getQName(); // <======= changeme

should be changed to:

QName xmlType=elem.getType().getQName();

- Navneet

Reply via email to