[Mono-bugs] [Bug 81886][Nor] New - SoapException / Fault does not deserialize detail field (expects namespace)

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Jun 15 19:00:58 EDT 2007

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 tekhedd at byteheaven.net.


--- shadow/81886	2007-06-15 19:00:58.000000000 -0400
+++ shadow/81886.tmp.14465	2007-06-15 19:00:58.000000000 -0400
@@ -0,0 +1,69 @@
+Bug#: 81886
+Product: Mono: Class Libraries
+Version: 1.2
+OS Details: CentOS 4.2
+Status: NEW   
+Priority: Normal
+Component: Sys.Web.Services
+AssignedTo: atsushi at ximian.com                            
+ReportedBy: tekhedd at byteheaven.net               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: SoapException / Fault does not deserialize detail field (expects namespace)
+Description of Problem:
+The Detail field of a SoapException is always null when calling an axis
+SOAP server. 
+After dumping the line protocol, the SOAP Fault response seems to be well
+formed. The detail field is not parsed because
+System.Web.Services.Protocols.FaultReader expects the "detail" field to
+have a namespace, but axis sends it unqualified with no default namespace
+From Fault.cs:167:
+  else if (Reader.LocalName == "detail" && Reader.NamespaceURI ==
+"http://schemas.xmlsoap.org/soap/envelope/" && !b3) {
+Says it all really. Unless a default namespace has been set in the
+XmlReader (is that possible?), this is always skipped. Here is the soap
+response (as intercepted by me).
+> HTTP/1.1 500 Internal Server Error                                    
+> Server: Apache-Coyote/1.1                                             
+> Content-Type: text/xml;charset=utf-8                                  
+> Transfer-Encoding: chunked                                            
+> Date: Sat, 04 Aug 2007 08:39:00 GMT                                   
+> Connection: close                                                     
+> 2a0                                                                   
+> <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv=
+> "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.o
+> rg/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc
+> e"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.generalExcep
+> tion</faultcode><faultstring></faultstring><detail><ns1:fault xmlns:ns
+> 1="urn:server.dlm.derby.com"><ns1:code>3</ns1:code></ns1:fault><ns2:ex
+> ceptionName xmlns:ns2="http://xml.apache.org/axis/">com.derby.dlm.serv
+> er.LicenseException</ns2:exceptionName><ns3:hostname xmlns:ns3="http:/
+> /xml.apache.org/axis/">rhbuild.dai.com</ns3:hostname></detail></soapen
+Backend device was closed.
+> v:Fault></soapenv:Body></soapenv:Envelope>  
+As you can see, the detail field has no namespace specified. Now I'm not an
+XML god, but I can't see that the <detail /> element is going to have a
+namespace associated with it.
+The question is: is this a bug in axis, should the FaultReader be expecting
+an empty namespace here, or is the XmlReader not correctly filling in the
+namespace somehow? Possibly somebody is enough of a SOAP expert to know
+which part is broken? 
+My coworker assures me that this works in .NET, but I have not confirmed that.
+(Note, the same may apply to the Fault12Reader...)

More information about the mono-bugs mailing list