[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.
http://bugzilla.ximian.com/show_bug.cgi?id=81886
--- 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:
+OS Details: CentOS 4.2
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: Sys.Web.Services
+AssignedTo: atsushi at ximian.com
+ReportedBy: tekhedd at byteheaven.net
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+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
+specified.
+
+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