X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Runtime.Remoting%2FRemotingServices.cs;h=815c1ba7e73727e93d0d58ca15d81976c08fe14d;hb=1a17c39b235510a29362810356c1a5e516185136;hp=d2b99281c3b4143b74566ab73fb8965b321b516f;hpb=b190f213a364a2793cc573e1bd9fae8be72296e4;p=mono.git diff --git a/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs b/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs index d2b99281c3b..815c1ba7e73 100644 --- a/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs +++ b/mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs @@ -808,45 +808,15 @@ namespace System.Runtime.Remoting [SecurityPermission (SecurityAction.Assert, SerializationFormatter = true)] // FIXME: to be reviewed internal static byte[] SerializeExceptionData (Exception ex) { + byte[] result = null; try { - int retry = 4; - - do { - try { - MemoryStream ms = new MemoryStream (); - _serializationFormatter.Serialize (ms, ex); - return ms.ToArray (); - } - catch (Exception e) { - if (e is ThreadAbortException) { -#if MONO_FEATURE_THREAD_ABORT - Thread.ResetAbort (); -#endif - retry = 5; - ex = e; - } - else if (retry == 2) { - ex = new Exception (); - ex.SetMessage (e.Message); - ex.SetStackTrace (e.StackTrace); - } - else - ex = e; - } - retry--; - } - while (retry > 0); - - return null; - } - catch (Exception tex) - { - byte[] data = SerializeExceptionData (tex); -#if MONO_FEATURE_THREAD_ABORT - Thread.ResetAbort (); -#endif - return data; + /* empty - we're only interested in the protected block */ + } finally { + MemoryStream ms = new MemoryStream (); + _serializationFormatter.Serialize (ms, ex); + result = ms.ToArray (); } + return result; } internal static object GetDomainProxy(AppDomain domain)