MessageElement [] for <any> doesn't include all elements
--------------------------------------------------------
Key: AXIS-1818
URL: http://issues.apache.org/jira/browse/AXIS-1818
Project: Axis
Type: Bug
Components: Serialization/Deserialization
Versions: 1.2RC2
Environment: XP / JDK 1.4.x / Axis 1.2 RC3
Reporter: Simon Fell
This is with Axis 1.2 RC3
Given this type fragment
<sequence>
<element name="type" type="xsd:string"/>
<element name="fieldsToNull" type="xsd:string" nillable="true" minOccurs="0"
maxOccurs="unbounded"/>
<element name="Id" type="tns:ID" nillable="true" minOccurs="0" maxOccurs="1"/>
<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
If a runtime message returns the Id element twice, the 2nd instance, which
should end up in the any collection gets dropped.
There's a sample service at http://soap.4s4c.com/dotnet/any.wsdl that this test
code shows this problem.
AnyServiceLocator loc = new AnyServiceLocator();
Soap svc = loc.getSoap();
QueryResult qr = svc.query("blah");
for (int i =0; i < qr.getRecords().length; i++ ) {
SObject s = qr.getRecords(i);
MessageElement [] e= s.get_any();
System.out.println("MessageElement array size is " +
e.length);
for (int j = 0; j < e.length; j++ ){
System.out.print(" " + e[j].getValue());
}
System.out.println("");
}
This prints out "MessageElement array size is 2", even though there's 3
elements that appear after the first Id element, here's the fragement of the
response.
<records xsi:type="sf:sObject">
<sf:type>Contact</sf:type>
<sf:Id>00330000006jryXAAQ</sf:Id>
<sf:Id>00330000006jryXAAQ</sf:Id>
<sf:FirstName>Fred</sf:FirstName>
<sf:LastName>A>B</sf:LastName>
</records>
--
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