axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 17017] New: - The WSDL2Java generates incorrect type metadata for sequences containing arrays of sequences, thus preventing correct deserialization
Date Wed, 12 Feb 2003 18:38:12 GMT
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: axis-dev@ws.apache.org
        ReportedBy: njoneja@interwoven.com


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

Mime
View raw message