[Mono-bugs] [Bug 74108][Nor] New - Problem receiving double in ArrayList from .Net via SOAP remoting

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Fri, 25 Mar 2005 18:04:03 -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 ravitch@nrtc.northrop.com.

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

--- shadow/74108	2005-03-25 18:04:03.000000000 -0500
+++ shadow/74108.tmp.5268	2005-03-25 18:04:03.000000000 -0500
@@ -0,0 +1,96 @@
+Bug#: 74108
+Product: Mono: Class Libraries
+Version: 1.1
+OS: All
+OS Details: (Tested on Windows 2000 and Fedora Core 3)
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: System
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: ravitch@nrtc.northrop.com               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Problem receiving double in ArrayList from .Net via SOAP remoting
+
+Description of Problem:
+
+Mono chokes on a double in an ArrayList sent back in an out parameter
+from a remote object if the remoting server is run under the MS .Net
+Framework 1.1.
+
+When a Mono server sends the response, the double is typed as a Double
+from the http://schemas.microsoft.com/clr/ns/System namespace.
+
+On the other hand, a .Net server sends the response with the double
+typed as xsd:double - which Mono doesn't seem to be able to understand.
+
+I'll attach a diff that adds xsd:double in what appears to be the
+appropriate place.  (Sorry it's not a proper patch - I haven't fought
+the firewall issues to be able to grab the subversion repository.)
+
+The diff is for the file
+home/ravitch/hurt/mono-1.1.5.20050321/mcs/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs.
+
+Steps to reproduce the problem:
+1. Unzip sample code (xsd-double-example.zip) and build it (there's a
+   very simple Makefile included).
+2. Edit client.config to point to your actual server machine in the URL.
+3. Run server.exe under MS .Net 1.1
+4. Run client.exe under Mono
+
+(The example code works Mono-Mono and .Net-.Net as well as with a
+.Net client and a Mono server.)
+
+Actual Results:
+
+---- BEGIN CLIENT OUTPUT ----
+Unhandled Exception: System.Runtime.Serialization.SerializationException:
+Parse Error, no assembly associated with XML key double
+http://www.w3.org/2001/XMLSchema
+in <0x001ef>
+System.Runtime.Serialization.Formatters.Soap.SoapTypeMapper:get_Item
+(System.Runtime.Serialization.Formatters.Soap.Element)
+in <0x0011a>
+System.Runtime.Serialization.Formatters.Soap.SoapReader:GetComponentType ()
+in <0x0038e>
+System.Runtime.Serialization.Formatters.Soap.SoapReader:DeserializeArray (long)
+in <0x000e6>
+System.Runtime.Serialization.Formatters.Soap.SoapReader:Deserialize ()
+in <0x002d2>
+System.Runtime.Serialization.Formatters.Soap.SoapReader:Deserialize
+(System.IO.Stream,System.Runtime.Serialization.Formatters.ISoapMessage)
+in <0x000ae>
+System.Runtime.Serialization.Formatters.Soap.SoapFormatter:Deserialize
+(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler)
+in <0x00012>
+System.Runtime.Serialization.Formatters.Soap.SoapFormatter:Deserialize
+(System.IO.Stream)
+in <0x00052>
+System.Runtime.Remoting.Channels.SoapClientFormatterSink:DeserializeMessage
+(System.IO.Stream,System.Runtime.Remoting.Channels.ITransportHeaders,System.Runtime.Remoting.Messaging.IMethodCallMessage,System.Runtime.Remoting.Channels.SoapMessageFormatter)
+in <0x000f5>
+System.Runtime.Remoting.Channels.SoapClientFormatterSink:SyncProcessMessage
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002ee> System.Runtime.Remoting.Proxies.RemotingProxy:Invoke
+(System.Runtime.Remoting.Messaging.IMessage)
+in <0x002cf> System.Runtime.Remoting.Proxies.RealProxy:PrivateInvoke
+(System.Runtime.Remoting.Proxies.RealProxy,System.Runtime.Remoting.Messaging.IMessage,System.Exception&,object[]&)
+---- END CLIENT OUTPUT ----
+
+Expected Results:
+
+---- BEGIN CLIENT OUTPUT ----
+Got System.Double value: 3.14159
+---- END CLIENT OUTPUT -----
+
+How often does this happen? 
+
+Every time.
+
+Additional Information:
+
+I'll add the diff and example code as attachments.