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 ji...@apache.org on 2004/03/22 12:56:58 UTC

[jira] Assigned: (AXIS-666) The WSDL2Java generates incorrect type metadata for sequences containing arrays of sequences, thus preventing correct deserialization

Message:

   The following issue has been re-assigned.

   Assignee: Glen Daniels (mailto:gdaniels@apache.org)
   Assigner: Davanum Srinivas (mailto:dims@yahoo.com)
       Date: Mon, 22 Mar 2004 3:55 AM
    Comment:
Glen,

Can you please comment on this bug?

thanks,
dims
---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/secure/ViewIssue.jspa?key=AXIS-666

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: AXIS-666
    Summary: The WSDL2Java generates incorrect type metadata for sequences containing arrays of sequences, thus preventing correct deserialization
       Type: Bug

     Status: Reopened

    Project: Axis
 Components: 
             WSDL processing
   Versions:
             1.1

   Assignee: Glen Daniels
   Reporter: Navneet Joneja

    Created: Wed, 12 Feb 2003 6:38 PM
    Updated: Mon, 22 Mar 2004 3:55 AM
Environment: Operating System: All
Platform: All

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


---------------------------------------------------------------------
JIRA INFORMATION:
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