[Mono-bugs] [Bug 52921][Blo] New - Cannot Marshal a TransparentProxy

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Fri, 16 Jan 2004 02:05:14 -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 cm4r5z@yahoo.com.

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

--- shadow/52921	2004-01-16 02:05:14.000000000 -0500
+++ shadow/52921.tmp.6863	2004-01-16 02:05:14.000000000 -0500
@@ -0,0 +1,65 @@
+Bug#: 52921
+Product: Mono/Class Libraries
+Version: unspecified
+OS: All
+OS Details: Windows XP and Linux 2.4.x
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Blocker
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: cm4r5z@yahoo.com               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Cannot Marshal a TransparentProxy
+
+Description of Problem:
+RemotingServices.Marshal(System.MarshalByRefObject,string,System.Type)
+fails when trying to marshal a TransparentProxy.
+
+This happens when you use a Bamboo.Prevalence TransparentPrevalenceEngine
+and try to marshal the transparent proxy of the prevalent object.
+
+My application makes extensive use of prevalence in this fashion to share
+objects in a distributed system.  The rest of my application does not
+depend on the Windows platform, and I would really like to have true
+flexibility of running it on Linux/Mono.
+
+Steps to reproduce the problem:
+1. Create a TransparentPrevalenceEngine:
+PrevalenceEngine engine =
+PrevalenceActivator.CreateTransparentEngine(SystemType, path);
+2. Marshal the prevalent system:
+ObjRef remotedReferenec = RemotingServices.Marshal(engine.PrevalentSystem
+as MarshalByRefObject, Uri, SystemType);
+
+Actual Results:
+Unhandled Exception: System.NotSupportedException: Operation is not supported
+in [0x000a0] (at
+/cvs/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs:225)
+System.Runtime.Remoting.RemotingServices:Marshal
+(System.MarshalByRefObject,string,System.Type)
+
+Expected Results:
+MS corlib can successfully marshal the TransparentProxy.  This allows other
+application domains to access the prevalent object.  Such access is a core
+feature of the product I am developing.
+
+How often does this happen? 
+Every time.
+
+Additional Information:
+I traced thru RemotingServices.Marshal, and discovered that if
+proxy.ObjectIdentity were not null, the NotSupportedException would not be
+thrown.
+
+How does proxy.ObjectIdentity get set?  Is there something I can change in
+Bambooo.Prevalence that might work around this?
+
+I will try to create a demo app of the problem soon!
+
+Thanks in advance!
+Casey Marshall