[Mono-bugs] [Bug 72265][Min] New - References to XML elements not handled properly in SOAP responses?

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Sun, 6 Feb 2005 16:59:01 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by bitserf+bugzilla@gmail.com.

http://bugzilla.ximian.com/show_bug.cgi?id=72265

--- shadow/72265	2005-02-06 16:59:01.000000000 -0500
+++ shadow/72265.tmp.1796	2005-02-06 16:59:01.000000000 -0500
@@ -0,0 +1,106 @@
+Bug#: 72265
+Product: Mono: Class Libraries
+Version: 1.0
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Minor
+Component: Sys.Web.Services
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: bitserf+bugzilla@gmail.com               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: References to XML elements not handled properly in SOAP responses?
+
+Description of Problem:
+
+I have a problem when receiving RPC-encoded SOAP responses from a server
+when parts of the result value use references for struct members that refer
+to the same object instance.
+
+Note: This is not the real Google Search service, but a custom
+implementation there of just to test interoperability with Mono.
+
+
+Actual Results:
+
+Unhandled Exception: System.Xml.XmlException: 'Element' is an invalid node
+type. Line 20, position 14.
+in <0x0011d> System.Xml.XmlReader:ReadEndElement ()
+in <0x004b1> System.Xml.Serialization.XmlSerializationReader:ReadList (object&)
+in <0x001eb>
+System.Xml.Serialization.XmlSerializationReader:ReadReferencingElement
+(string,string,bool,string&)
+in <0x00070>
+System.Xml.Serialization.XmlSerializationReader:ReadReferencingElement
+(string&)
+in <0x01115>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadMembers
+(System.Xml.Serialization.ClassMap,object,bool,bool)
+in <0x00054>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadClassInstanceMembers
+(System.Xml.Serialization.XmlTypeMapping,object)
+in <0x00227>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadClassInstance
+(System.Xml.Serialization.XmlTypeMapping,bool,bool)
+in <0x00060>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadObject
+(System.Xml.Serialization.XmlTypeMapping,bool,bool)
+in <0x00021> ReaderCallbackInfo:ReadObject ()
+in <0x00050> (wrapper delegate-invoke)
+System.MulticastDelegate:invoke_object ()
+in <0x0025d>
+System.Xml.Serialization.XmlSerializationReader:ReadReferencingElement
+(string,string,bool,string&)
+in <0x00070>
+System.Xml.Serialization.XmlSerializationReader:ReadReferencingElement
+(string&)
+in <0x0223e>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadMembers
+(System.Xml.Serialization.ClassMap,object,bool,bool)
+in <0x00268>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadMessage
+(System.Xml.Serialization.XmlMembersMapping)
+in <0x000e3>
+System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadRoot ()
+in <0x0007d> System.Xml.Serialization.XmlSerializer:Deserialize
+(System.Xml.Serialization.XmlSerializationReader)
+in <0x00056> System.Xml.Serialization.XmlSerializer:Deserialize
+(System.Xml.XmlReader)
+in <0x000fd> System.Web.Services.Protocols.WebServiceHelper:ReadSoapMessage
+(System.Xml.XmlTextReader,System.Web.Services.Protocols.SoapTypeStubInfo,System.Web.Services.Description.SoapBindingUse,System.Xml.Serialization.XmlSerializer,object&,System.Web.Services.Protocols.SoapHeaderCollection&)
+in <0x00340>
+System.Web.Services.Protocols.SoapHttpClientProtocol:ReceiveResponse
+(System.Net.WebResponse,System.Web.Services.Protocols.SoapClientMessage,System.Web.Services.Protocols.SoapExtension[])
+in <0x0007d> (wrapper remoting-invoke-with-check)
+System.Web.Services.Protocols.SoapHttpClientProtocol:ReceiveResponse
+(System.Net.WebResponse,System.Web.Services.Protocols.SoapClientMessage,System.Web.Services.Protocols.SoapExtension[])
+in <0x002a9> System.Web.Services.Protocols.SoapHttpClientProtocol:Invoke
+(string,object[])
+in <0x0006b> (wrapper remoting-invoke-with-check)
+System.Web.Services.Protocols.SoapHttpClientProtocol:Invoke (string,object[])
+in <0x00170> GoogleSearchService:doGoogleSearch
+(string,string,int,int,bool,string,bool,string,string,string)
+in <0x00090> GoogleSearchService:Main (string[])
+
+
+Expected Results:
+
+A successful method call.
+
+
+How often does this happen? 
+
+Every time. I can make it work if I clone objects in my server
+implementation, but I don't feel thats the correct fix.
+
+
+Additional Information:
+
+I've attached the XML response document for a successful (objects are
+embedded every where) and a failing response document (objects used in
+multiple have only one instance, referenced from wherever its used).