Elements of subtypes returned in wrong order in webservice response
-------------------------------------------------------------------

                 Key: AXIS2-4093
                 URL: https://issues.apache.org/jira/browse/AXIS2-4093
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: adb
    Affects Versions: 1.3
            Reporter: Balaji Hari
            Priority: Critical


When axis service returns elements of subtypes it returns in reverse order, 
1. subclass 
2.  super class.

Snippet from WSDL definition:

- <xs:complexType name="RuleDTO">
- <xs:sequence>
 <xs:element minOccurs="0" name="annotation" nillable="true" type="xs:string" />
 <xs:element maxOccurs="unbounded" minOccurs="0" name="applicableTrails" 
nillable="true" type="xs:int" />
 <xs:element minOccurs="0" name="deviceTypeId" nillable="true" type="xs:int" />
...
 <xs:element minOccurs="0" name="subject" nillable="true" 
type="ax21:SubjectDTO" />
</xs:sequence>
 </xs:complexType>

Definition of SubjectDTO (which has following sub types).

<xs:complexType name="SubjectDTO">
- <xs:sequence>
 <xs:element minOccurs="0" name="caseSensitive" type="xs:boolean" />
 <xs:element minOccurs="0" name="frequency" nillable="true" type="xs:int" />
 <xs:element minOccurs="0" name="ignoreWhitespace" type="xs:boolean" />
 <xs:element minOccurs="0" name="key" nillable="true" type="ax21:KeyDTO" />
 <xs:element minOccurs="0" name="COMPONENT_CLASSNAME" nillable="true" 
type="xs:string" />
 </xs:sequence>
 </xs:complexType>


- <xs:complexType name="SubjectCollectionDTO">
- <xs:complexContent>
- <xs:extension base="ax21:SubjectDTO">
- <xs:sequence>
 <xs:element maxOccurs="unbounded" minOccurs="0" name="collection" 
nillable="true" type="xs:string" />
 <xs:element minOccurs="0" name="contiguous" type="xs:boolean" />
 <xs:element minOccurs="0" name="ordered" type="xs:boolean" />
 </xs:sequence>
 </xs:extension>
 </xs:complexContent>
 </xs:complexType>

- <xs:complexType name="SubjectLinesDTO">
- <xs:complexContent>
- <xs:extension base="ax21:SubjectCollectionDTO">
 <xs:sequence />
 </xs:extension>
 </xs:complexContent>
 </xs:complexType>

Server Response :

<return type="com.bmc.bcan.dto.RuleDTO">
               <ns1:annotation></ns1:annotation>
               <ns1:applicableTrails
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:nil="true" />
               <ns1:deviceTypeId>0</ns1:deviceTypeId>
              <!-- SubType Element -->
                  <ns1:subject type="com.bmc.bcan.dto.SubjectLinesDTO">
                   <ns1:collection>set mls flow full</ns1:collection>
                   <ns1:collection>
                       set mls nde ${global.netflowDestination}
                       ${global.netflowPort}
                   </ns1:collection>
                   <ns1:collection>
                       set mls nde version 5
                   </ns1:collection>
                   <ns1:collection>set mls nde enable</ns1:collection>
                   <ns1:collection>
                       set mls agingtime long 64
                   </ns1:collection>
                   <ns1:collection>
                       set mls agingtime fast 16 0
                   </ns1:collection>
                   <ns1:contiguous>false</ns1:contiguous>
                   <ns1:ordered>false</ns1:ordered>
                   <ns1:caseSensitive>false</ns1:caseSensitive>
                   <ns1:frequency>2</ns1:frequency>
                   <ns1:ignoreWhitespace>true</ns1:ignoreWhitespace>
                   <ns1:key type="com.bmc.bcan.dto.KeyDTO">
                       <ns1:keyString>458169663-121</ns1:keyString>
                   </ns1:key>
               </ns1:subject>
               <ns1:substitutionValidation>
                   true
               </ns1:substitutionValidation>
               <ns1:trigger
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                   xsi:nil="true" />
               <ns1:violationSeverity>5</ns1:violationSeverity>
           </return>

For SubjectLinesDTO the subelement collection from SubjectCollectionDTO is 
returned first instead of
elements from SubjectDTO (<ns1:caseSensitive>false</ns1:caseSensitive>
                   <ns1:frequency>2</ns1:frequency>
                   <ns1:ignoreWhitespace>true</ns1:ignoreWhitespace>
                   <ns1:key type="com.bmc.bcan.dto.KeyDTO">
                       <ns1:keyString>458169663-121</ns1:keyString>
                   </ns1:key>)

SubjectLinesDTO.Factory.parse in the client generated stub tries to parse the 
elements in SubjectDTO first and then SubjectLinesDTO

This issue is second part of 

https://issues.apache.org/jira/browse/AXIS2-4092

which happens when type="fully qualified class name" is changed to 
xsi:type="ns:SchemaType" (test run)

We need a fix for this as this has been a blocker.

Balaji






-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to