In System/System.Net:
authorSebastien Pouliot <sebastien@ximian.com>
Fri, 5 Jun 2009 18:19:16 +0000 (18:19 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Fri, 5 Jun 2009 18:19:16 +0000 (18:19 -0000)
2009-06-05  Sebastien Pouliot  <sebastien@ximian.com>

* DownloadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
* OpenReadCompletedEventArgs.cs: Remove Address property since it's
not part of SL2. Call RaiseExceptionIfNecessary
* OpenWriteCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
* UploadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary

In System.Net/System.Net:
2009-06-05  Sebastien Pouliot  <sebastien@ximian.com>

* WebClient_2_1.cs: Make sure *CompletedEventArgs gets called
even in case an exception occurs before the BeginGetResponse
call. Adjust API for OpenReadCompletedEventArgs.

svn path=/trunk/mcs/; revision=135545

mcs/class/System.Net/System.Net/ChangeLog
mcs/class/System.Net/System.Net/WebClient_2_1.cs
mcs/class/System/System.Net/ChangeLog
mcs/class/System/System.Net/DownloadStringCompletedEventArgs.cs
mcs/class/System/System.Net/OpenReadCompletedEventArgs.cs
mcs/class/System/System.Net/OpenWriteCompletedEventArgs.cs
mcs/class/System/System.Net/UploadStringCompletedEventArgs.cs

index 9705c5c200096b32c97f449a95b2c6a89e93c2e8..46e66589bc5daeb736356a818c133e4bc538c7f7 100644 (file)
@@ -1,3 +1,9 @@
+2009-06-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * WebClient_2_1.cs: Make sure *CompletedEventArgs gets called 
+       even in case an exception occurs before the BeginGetResponse 
+       call. Adjust API for OpenReadCompletedEventArgs.
+
 2009-06-04  Sebastien Pouliot  <sebastien@ximian.com>
 
        * WebClient_2_1.cs: Remove the creation of threads and use the
index e43689f642d69cbc8ed37d2f2b1bfe77d8d29566..01f2022e890e9abffeb0d86111c500ee1d97de5f 100644 (file)
@@ -212,8 +212,15 @@ namespace System.Net {
                        lock (locker) {
                                SetBusy ();
 
-                               request = SetupRequest (address, "GET");
-                               request.BeginGetResponse (new AsyncCallback (DownloadStringAsyncCallback), userToken);
+                               try {
+                                       request = SetupRequest (address, "GET");
+                                       request.BeginGetResponse (new AsyncCallback (DownloadStringAsyncCallback), userToken);
+                               }
+                               catch (Exception e) {
+                                       WebException wex = new WebException ("Could not start operation.", e);
+                                       OnDownloadStringCompleted (
+                                               new DownloadStringCompletedEventArgs (null, wex, false, userToken));
+                               }
                        }
                }
 
@@ -258,8 +265,15 @@ namespace System.Net {
                        lock (locker) {
                                SetBusy ();
 
-                               request = SetupRequest (address, "GET");
-                               request.BeginGetResponse (new AsyncCallback (OpenReadAsyncCallback), userToken);
+                               try {
+                                       request = SetupRequest (address, "GET");
+                                       request.BeginGetResponse (new AsyncCallback (OpenReadAsyncCallback), userToken);
+                               }
+                               catch (Exception e) {
+                                       WebException wex = new WebException ("Could not start operation.", e);
+                                       OnOpenReadCompleted (
+                                               new OpenReadCompletedEventArgs (null, wex, false, userToken));
+                               }
                        }
                }
 
@@ -281,7 +295,7 @@ namespace System.Net {
                        }
                        finally {
                                OnOpenReadCompleted (
-                                       new OpenReadCompletedEventArgs (stream, request.RequestUri, ex, cancel, result.AsyncState));
+                                       new OpenReadCompletedEventArgs (stream, ex, cancel, result.AsyncState));
                        }
                }
 
@@ -305,8 +319,15 @@ namespace System.Net {
                        lock (locker) {
                                SetBusy ();
 
-                               request = SetupRequest (address, method);
-                               request.BeginGetRequestStream (new AsyncCallback (OpenWriteAsyncCallback), userToken);
+                               try {
+                                       request = SetupRequest (address, method);
+                                       request.BeginGetRequestStream (new AsyncCallback (OpenWriteAsyncCallback), userToken);
+                               }
+                               catch (Exception e) {
+                                       WebException wex = new WebException ("Could not start operation.", e);
+                                       OnOpenWriteCompleted (
+                                               new OpenWriteCompletedEventArgs (null, wex, false, userToken));
+                               }
                        }
                }
 
@@ -353,10 +374,17 @@ namespace System.Net {
                        lock (locker) {
                                SetBusy ();
 
-                               request = SetupRequest (address, method);
-                               object[] bag = new object [] { encoding.GetBytes (data), userToken };
+                               try {
+                                       request = SetupRequest (address, method);
+                                       object[] bag = new object [] { encoding.GetBytes (data), userToken };
 
-                               request.BeginGetRequestStream (new AsyncCallback (UploadStringRequestAsyncCallback), bag);
+                                       request.BeginGetRequestStream (new AsyncCallback (UploadStringRequestAsyncCallback), bag);
+                               }
+                               catch (Exception e) {
+                                       WebException wex = new WebException ("Could not start operation.", e);
+                                       OnUploadStringCompleted (
+                                               new UploadStringCompletedEventArgs (null, wex, false, userToken));
+                               }
                        }
                }
 
index def95e86edb4b647b0300e6f7cee779f1a237fb5..6df589c0db09ab179a749e5d26b0b0c6cffefe42 100644 (file)
@@ -1,3 +1,11 @@
+2009-06-05  Sebastien Pouliot  <sebastien@ximian.com> 
+
+       * DownloadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
+       * OpenReadCompletedEventArgs.cs: Remove Address property since it's 
+       not part of SL2. Call RaiseExceptionIfNecessary
+       * OpenWriteCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
+       * UploadStringCompletedEventArgs.cs: Call RaiseExceptionIfNecessary
+
 2009-06-05  Robert Jordan  <robertj@gmx.net>
 
        * WebClient.cs (UploadValuesCore): Encode POST arguments with UTF-8.
index 679295c0be366e0296ea3afe8a960b137302762e..2c130a5fa3e82f6549981a918d9406921c2e76fc 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Atsushi Enomoto  <atsushi@ximian.com>
 //
-// (C) 2006 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2006,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -30,7 +30,6 @@
 #if NET_2_0
 
 using System.ComponentModel;
-using System.IO;
 
 namespace System.Net
 {
@@ -46,7 +45,12 @@ namespace System.Net
                string result;
 
                public string Result {
-                       get { return result; }
+                       get {
+#if NET_2_1
+                               RaiseExceptionIfNecessary ();
+#endif
+                               return result;
+                       }
                }
        }
 }
index 1df7c5c94886e4373ff19d8e4e5384774c767d44..2fb6bed48277b789a758e4982b4db20df8979d51 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Atsushi Enomoto  <atsushi@ximian.com>
 //
-// (C) 2006 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2006,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -36,32 +36,22 @@ namespace System.Net
 {
        public class OpenReadCompletedEventArgs : AsyncCompletedEventArgs
        {
-#if NET_2_1
-               internal OpenReadCompletedEventArgs (Stream result, Uri address,
-#else
-               internal OpenReadCompletedEventArgs (Stream result,
-#endif
-                       Exception error, bool cancelled, object userState)
+               internal OpenReadCompletedEventArgs (Stream result, Exception error, bool cancelled, object userState)
                        : base (error, cancelled, userState)
                {
-#if NET_2_1
-                       this.address = address;
-#endif
                        this.result = result;
                }
 
                Stream result;
 
                public Stream Result {
-                       get { return result; }
-               }
-
+                       get {
 #if NET_2_1
-               Uri address;
-               public Uri Address {
-                       get { return address; }
-               }
+                               RaiseExceptionIfNecessary ();
 #endif
+                               return result;
+                       }
+               }
        }
 }
 
index 3f467c317f9a26ced59e06bb50f268e120c6e23e..7191efe49a377c0b3344bdb9d3f4fe5d4c28324e 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Atsushi Enomoto  <atsushi@ximian.com>
 //
-// (C) 2006 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2006,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -46,7 +46,12 @@ namespace System.Net
                Stream result;
 
                public Stream Result {
-                       get { return result; }
+                       get {
+#if NET_2_1
+                               RaiseExceptionIfNecessary ();
+#endif
+                               return result;
+                       }
                }
        }
 }
index 2b8b2a4a4f7b03d14f474d9801d7dee20b879355..dfef2c9ba0e43b535f9d9b96bac29c72e0853de7 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Atsushi Enomoto  <atsushi@ximian.com>
 //
-// (C) 2006 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2006,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -30,7 +30,6 @@
 #if NET_2_0
 
 using System.ComponentModel;
-using System.IO;
 
 namespace System.Net
 {
@@ -46,7 +45,12 @@ namespace System.Net
                string result;
 
                public string Result {
-                       get { return result; }
+                       get {
+#if NET_2_1
+                               RaiseExceptionIfNecessary ();
+#endif
+                               return result;
+                       }
                }
        }
 }