[Mono-bugs] [Bug 81352][Maj] Changed - Call of a implemented properties

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Apr 11 11:19:18 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 mercier.eric at gmail.com.

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

--- shadow/81352	2007-04-11 11:00:47.000000000 -0400
+++ shadow/81352.tmp.1548	2007-04-11 11:19:18.000000000 -0400
@@ -23,6 +23,297 @@
 ------- Additional Comments From robertj at gmx.net  2007-04-11 09:35 -------
 Please attach a test case.
 
 
 ------- Additional Comments From vargaz at gmail.com  2007-04-11 10:35 -------
 -> class libs
+
+------- Additional Comments From mercier.eric at gmail.com  2007-04-11 11:19 -------
+		public void Remote()
+
+		{
+
+			BinaryServerFormatterSinkProvider provider = new
+BinaryServerFormatterSinkProvider();
+
+			provider.TypeFilterLevel =
+System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
+
+
+
+			IDictionary props = new Hashtable();
+
+			props["name"] = null;
+
+
+
+
+			int channelNameCount = 0;
+
+			string channelName = "";
+
+			bool channelNameFound;
+
+			while (props["name"] == null)
+
+			{
+
+				channelName = settings.RemotedObjectName +
+channelNameCount.ToString();
+
+				channelNameFound = false;
+
+
+
+				foreach (IChannel registeredChannel in
+ChannelServices.RegisteredChannels)
+
+				{
+
+					if (registeredChannel.ChannelName.Equals(channelName))
+
+					{
+
+						channelNameFound = true;
+
+
+
+						break;
+
+					}
+
+				}
+
+
+
+				if (!channelNameFound)
+
+					props["name"] = channelName;
+
+				else channelNameCount++;
+
+			}
+
+
+
+
+			props["secure"] = false;
+
+
+
+
+
+
+
+			int portIndex = 0;
+
+			while (channel == null)
+
+			{
+
+				props["port"] = currentPort = settings.Ports[portIndex];
+
+
+
+				try
+
+				{
+
+					channel = new TcpChannel(props, null, provider);
+
+					
+
+					ChannelServices.RegisterChannel(channel, false);
+
+				}
+
+				catch (SocketException exception)
+
+				{
+
+					channel = null;
+
+					if (settings.Ports.Count > (portIndex + 1))
+
+						portIndex++;
+
+					else
+
+						throw new UnableToCreateChannelException("", exception);
+
+				}
+
+				catch (RemotingException exception)
+
+				{
+
+					throw new UnableToRegisterChannelException("", exception);
+
+				}
+
+			}
+
+
+
+			remotedObjectReference = RemotingServices.Marshal(this,
+settings.RemotedObjectName, this.GetType());
+
+
+
+			if (remotedObjectReference == null)
+
+				throw new CanNotRemoteHimSelfException();
+
+
+
+			if (Remoted != null)
+
+				Remoted(this, null);
+
+
+
+
+
+			if (settings.BroadCastPorts.Count != 0)
+
+			{
+
+				broadCastReceiver.Initialize(settings.BroadCastPorts);
+
+				broadCastReceiver.StartListen();
+
+
+
+
+
+				foreach (int port in settings.BroadCastPorts)
+
+					broadCastReceiver.Send(Description.ToShortString(), new
+IPEndPoint(IPAddress.Broadcast, port));
+
+			}
+
+
+		}
+
+
+
+
+run this code twice and it crash with:
+
+
+
+
+System.NotSupportedException: Operation is not supported.
+  at
+System.Runtime.Remoting.Channels.ServerDispatchSinkProvider.set_Next
+(IServerChannelSinkProvider value) [0x00000] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/corlib/System.Runtime.Remoting.Channels/ServerDispatchSinkProvider.cs:54
+
+  at
+System.Runtime.Remoting.Channels.ChannelServices.CreateServerChannelSinkChain
+(IServerChannelSinkProvider provider, IChannelReceiver channel)
+[0x0001a] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/corlib/System.Runtime.Remoting.Channels/ChannelServices.cs:167
+
+  at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.Init
+(IServerChannelSinkProvider serverSinkProvider) [0x000cc] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs:96
+
+  at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor
+(IDictionary properties, IServerChannelSinkProvider
+serverSinkProvider) [0x001b1] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpServerChannel.cs:142
+
+  at System.Runtime.Remoting.Channels.Tcp.TcpChannel.Init (IDictionary
+properties, IClientChannelSinkProvider clientSink,
+IServerChannelSinkProvider serverSink) [0x0001d] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpChannel.cs:61
+
+  at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor
+(IDictionary properties, IClientChannelSinkProvider
+clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
+[0x00018] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpChannel.cs:75
+
+  at Apodis.Remote.Remotable.Remote () [0x00108] in
+/home/eric/stage/Remote/Apodis.Remote/Remotable.cs:160 
+  at (wrapper remoting-invoke-with-check)
+Apodis.Remote.Remotable:Remote ()
+  at RemoteTest.RemotableForm.button_Click (System.Object sender,
+System.EventArgs e) [0x00030] in
+/home/eric/stage/Remote/RemoteTest/RemotableForm.cs:76 
+  at (wrapper delegate-invoke)
+System.MulticastDelegate:invoke_void_object_EventArgs
+(object,System.EventArgs)
+  at System.Windows.Forms.Control.OnClick (System.EventArgs e)
+[0x0001c] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:4815
+
+  at System.Windows.Forms.Button.OnClick (System.EventArgs e)
+[0x00025] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs:103
+
+  at System.Windows.Forms.ButtonBase.OnMouseUp
+(System.Windows.Forms.MouseEventArgs mevent) [0x000a7] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs:476
+
+  at System.Windows.Forms.Button.OnMouseUp
+(System.Windows.Forms.MouseEventArgs e) [0x00000] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs:107
+
+  at System.Windows.Forms.Control.WndProc
+(System.Windows.Forms.Message& m) [0x0027f] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:4477
+
+  at System.Windows.Forms.ButtonBase.WndProc
+(System.Windows.Forms.Message& m) [0x00055] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs:530
+
+  at System.Windows.Forms.Button.WndProc
+(System.Windows.Forms.Message& m) [0x00000] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs:120
+
+  at System.Windows.Forms.Control+ControlNativeWindow.WndProc
+(System.Windows.Forms.Message& m) [0x00000] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:196
+
+  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg,
+IntPtr wParam, IntPtr lParam) [0x0006b] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/NativeWindow.cs:171
+
+
+Unhandled Exception: System.InvalidOperationException: Cannot call
+Invoke or InvokeAsync on a control until the window handle is created
+  at System.Windows.Forms.Control.BeginInvokeInternal (System.Delegate
+method, System.Object[] args, Boolean disposing) [0x0007b] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:1162
+
+  at System.Windows.Forms.Control.BeginInvoke (System.Delegate method,
+System.Object[] args) [0x00000] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:3193
+
+  at (wrapper remoting-invoke-with-check)
+System.Windows.Forms.Control:BeginInvoke (System.Delegate,object[])
+  at System.Windows.Forms.Control.Invoke (System.Delegate method,
+System.Object[] args) [0x00013] in
+/var/tmp/portage/dev-lang/mono-1.2.3.1/work/mono-1.2.3.1/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs:3419
+
+  at (wrapper remoting-invoke-with-check)
+System.Windows.Forms.Control:Invoke (System.Delegate,object[])
+  at RemoteTest.RemotableForm.RemoteObjectDiscovered (System.Object
+sender, Apodis.Remote.RemoteObjectEventArgs e) [0x00000] in
+/home/eric/stage/Remote/RemoteTest/RemotableForm.cs:44 
+  at (wrapper delegate-invoke)
+System.MulticastDelegate:invoke_void_object_RemoteObjectEventArgs
+(object,Apodis.Remote.RemoteObjectEventArgs)
+  at Apodis.Remote.Remotable.BroadCastReceiver_DataReceived
+(System.Object sender, Apodis.Remote.DataReceivedBroadcastEventArgs e)
+[0x000eb] in /home/eric/stage/Remote/Apodis.Remote/Remotable.cs:112 
+  at (wrapper delegate-invoke)
+System.MulticastDelegate:invoke_void_object_DataReceivedBroadcastEventArgs
+(object,Apodis.Remote.DataReceivedBroadcastEventArgs)
+  at Apodis.Remote.BroadcastManager`1[System.String].ListeningFunction
+() [0x00089] in
+/home/eric/stage/Remote/Apodis.Remote/BroadCastManager.cs:150 
+  at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void ()
+


More information about the mono-bugs mailing list