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 "Ashutosh Shahi (JIRA)" <ax...@ws.apache.org> on 2005/06/02 14:47:59 UTC

[jira] Updated: (AXIS-1818) MessageElement [] for doesn't include all elements

     [ http://issues.apache.org/jira/browse/AXIS-1818?page=all ]

Ashutosh Shahi updated AXIS-1818:
---------------------------------

    Attachment: 1818.diff

Submitting a patch for the problem ... it passes all-tests ... Tom, can you look at it to see if it is fine?
I'll also upload the example given by Simon as a TestCase.

Ashutosh

> 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
>     Assignee: Venkat Reddy
>  Attachments: 1818.diff, sforce.xml, sforce.xsd
>
> 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&gt;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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira