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 bu...@apache.org on 2002/03/20 09:46:51 UTC

DO NOT REPLY [Bug 7269] New: - Empty ID attributes in responses

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=7269>.
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=7269

Empty ID attributes in responses

           Summary: Empty ID attributes in responses
           Product: Axis
           Version: beta-1
          Platform: PC
               URL: http://www.silbergrau.com
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: pri@silbergrau.com
                CC: pri@silbergrau.com


The following case shows a request and response where 
the response references elements that do not exists. 
Actually the element exist, but it has an empty ID attribute!

Note: This seems to happen whenever AXIS is sending a subclass
of the Type described. In the testcase the method takes a parameter
of TypeA but actual type sent is TypeB.

TYPES: 
------
public class TypeA {
  private TypeA reference;
}

public class TypeB extends TypeA {
}

Remote method = TypeA passThroughTypeA(TypeA a)

REQUEST ENVELOPE: 
-----------------

TypeA a = new TypeA(); 
TypeA b = new TypeB(); 
a.setReference(b); 
b.setReference(null);

<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-enc11="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-
env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-
enc12="http://www.w3.org/2001/06/soap-encoding" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:silbergrauSoapExtensions="http://www.silbergrau.com/soap/extensions">
  <soap-env:Body>
    <ns2:passThroughTypeA xmlns:ns2="TestService">
      <param soap-env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:TypeA" id="4" 
xmlns:ns3="http://www.silbergrau.com/schemas/encodedTypes">
        <reference xsi:type="ns3:TypeB" id="5">
          <reference xsi:type="ns3:TypeA" xsi:null="1" 
xsi:nil="true"></reference>
        </reference>
      </param>
    </ns2:passThroughTypeA>
  </soap-env:Body>
</soap-env:Envelope>
 
RESPONSE ENVELOPE
-----------------
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <ns1:passThroughTypeAResponse SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="TestService">
      <passThroughTypeAResult href="#id0"/>
    </ns1:passThroughTypeAResponse>
    <multiRef id="id0" SOAP-ENC:root="0" xsi:type="ns2:TypeA" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://www.silbergrau.com/schemas/encodedTypes">
      <!--
        THIS REFERENCES TO THE ACTUAL TypeB ELEMENT    
      -->
      <reference href="#id1"/>
    </multiRef>
    <!--
      THE ELEMENT IS CORRECTLY MARSHALLED, HOWEVER, THE 
      ID ATTRIBUTE IS EMTPY
    -->
    <multiRef id="" SOAP-ENC:root="0" xsi:type="ns3:TypeB" 
xmlns:ns3="http://www.silbergrau.com/schemas/encodedTypes" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/">
      <reference xsi:nil="true"/>
    </multiRef>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>