[Connection] Fix crash 51/150651/1 preview1-00220
authorchleun.moon <chleun.moon@samsung.com>
Mon, 18 Sep 2017 07:00:37 +0000 (16:00 +0900)
committerchleun.moon <chleun.moon@samsung.com>
Mon, 18 Sep 2017 07:00:49 +0000 (16:00 +0900)
Fix crash with error message "Unhandled Exception:
System.InvalidOperationException: An attempt was
made to transition a task to a final state when it had already
completed".
It causes by calling SetResult() after SetException().
https://msdn.microsoft.com/ko-kr/library/dd449202(v=vs.110).aspx

Change-Id: I9e1c98d3507939e433f4fce5f8436459f137e629
Signed-off-by: Cheoleun Moon <chleun.moon@samsung.com>
src/Tizen.Network.Connection/Tizen.Network.Connection/ConnectionInternalManager.cs

index f9aa0be..2725077 100755 (executable)
@@ -809,8 +809,10 @@ namespace Tizen.Network.Connection
                         Log.Error(Globals.LogTag, "Error occurs during set default cellular profile, " + Result);
                         task.SetException(new InvalidOperationException("Error occurs during set default cellular profile, " + Result));
                     }
-
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                 };
 
                 int ret = Interop.Connection.SetDefaultCellularServiceProfileAsync(GetHandle(), (int)type, profile.ProfileHandle, Callback, (IntPtr)0);
@@ -894,8 +896,10 @@ namespace Tizen.Network.Connection
                         Log.Error(Globals.LogTag, "Error occurs during connecting profile, " + Result);
                         task.SetException(new InvalidOperationException("Error occurs during connecting profile, " + Result));
                     }
-
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                 };
 
                 int ret = Interop.Connection.OpenProfile(GetHandle(), profile.ProfileHandle, Callback, IntPtr.Zero);
@@ -930,8 +934,10 @@ namespace Tizen.Network.Connection
                         Log.Error(Globals.LogTag, "Error occurs during disconnecting profile, " + Result);
                         task.SetException(new InvalidOperationException("Error occurs during disconnecting profile, " + Result));
                     }
-
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                 };
 
                 int ret = Interop.Connection.CloseProfile(GetHandle(), profile.ProfileHandle, Callback, IntPtr.Zero);