Author: jbevain
Date: 2007-11-09 10:06:44 -0500 (Fri, 09 Nov 2007)
New Revision: 89318
Modified:
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
Log:
2007-11-09 Jb Evain <[EMAIL PROTECTED]>
* BrowserHttpWebAsyncResult.cs
* BrowserHttpWebResponse.cs
* BrowserHttpWebRequest.cs:
Do not allow methods that are called from the unmanaged
site of the BrowserHttpRequest to bubble up exceptions.
Modified:
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
===================================================================
---
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
2007-11-09 14:45:31 UTC (rev 89317)
+++
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
2007-11-09 15:06:44 UTC (rev 89318)
@@ -48,6 +48,7 @@
bool completed;
AsyncCallback callback;
ManualResetEvent wait_handle;
+ Exception exception;
BrowserHttpWebResponse response;
@@ -84,6 +85,15 @@
get { return completed; }
}
+ public bool HasException {
+ get { return exception != null; }
+ }
+
+ public Exception Exception {
+ get { return exception; }
+ set { exception = value; }
+ }
+
public BrowserHttpWebAsyncResult (AsyncCallback callback,
object state)
{
this.callback = callback;
Modified:
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
===================================================================
---
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
2007-11-09 14:45:31 UTC (rev 89317)
+++
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
2007-11-09 15:06:44 UTC (rev 89318)
@@ -139,8 +139,12 @@
void OnAsyncResponseAvailable (IntPtr native, IntPtr context)
{
- async_result.Response = new BrowserHttpWebResponse
(this, native);
- async_result.SetComplete ();
+ try {
+ async_result.Response = new
BrowserHttpWebResponse (this, native);
+ async_result.SetComplete ();
+ } catch (Exception e) {
+ async_result.Exception = e;
+ }
}
public override Stream EndGetRequestStream (IAsyncResult
asyncResult)
@@ -156,6 +160,11 @@
if (!async_result.IsCompleted)
async_result.AsyncWaitHandle.WaitOne ();
+ if (async_result.HasException) {
+ async_result.Dispose ();
+ throw async_result.Exception;
+ }
+
response = async_result.Response;
async_result.Dispose ();
Modified:
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
===================================================================
---
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
2007-11-09 14:45:31 UTC (rev 89317)
+++
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
2007-11-09 15:06:44 UTC (rev 89318)
@@ -69,7 +69,9 @@
void OnHttpHeader (string name, string value)
{
- headers [name] = value;
+ try {
+ headers [name] = value;
+ } catch {}
}
public override void Close ()
Modified:
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
===================================================================
--- trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
2007-11-09 14:45:31 UTC (rev 89317)
+++ trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
2007-11-09 15:06:44 UTC (rev 89318)
@@ -1,5 +1,12 @@
2007-11-09 Jb Evain <[EMAIL PROTECTED]>
+ * BrowserHttpWebAsyncResult.cs
+ * BrowserHttpWebResponse.cs
+ * BrowserHttpWebRequest.cs:
+ Do not allow methods that are called from the unmanaged
+ site of the BrowserHttpRequest to bubble up exceptions.
+2007-11-09 Jb Evain <[EMAIL PROTECTED]>
+
* BrowserHttpWebRequest.cs: throw if an async request
cannot be started.
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches