[WiFi] Fix crash 34/150634/1
authorchleun.moon <chleun.moon@samsung.com>
Mon, 18 Sep 2017 06:29:51 +0000 (15:29 +0900)
committerchleun.moon <chleun.moon@samsung.com>
Mon, 18 Sep 2017 06:29:57 +0000 (15:29 +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: Icb6d63dd445f505f159413d601da310322c50ab9
Signed-off-by: Cheoleun Moon <chleun.moon@samsung.com>
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs

index 350b275..b5fd4ae 100755 (executable)
@@ -228,7 +228,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi connecting, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi connecting, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -283,7 +286,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi connecting, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi connecting, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -357,8 +363,11 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi connecting, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi connecting, " + (WiFiError)error));
                     }
-                    WiFiAP ap = WiFiManagerImpl.Instance.GetConnectedAP();
-                    task.SetResult(ap);
+                    else
+                    {
+                        WiFiAP ap = WiFiManagerImpl.Instance.GetConnectedAP();
+                        task.SetResult(ap);
+                    }
                     lock (s_callbackMap)
                     {
                         s_callbackMap.Remove(key);
@@ -431,7 +440,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi disconnecting, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi disconnecting, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
index 10865c4..bd56b97 100755 (executable)
@@ -287,7 +287,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi activating, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi activating, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -319,7 +322,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi activating, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi activating, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -351,7 +357,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi deactivating, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi deactivating, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -383,7 +392,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi scanning, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi scanning, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);
@@ -415,7 +427,10 @@ namespace Tizen.Network.WiFi
                         Log.Error(Globals.LogTag, "Error occurs during WiFi scanning, " + (WiFiError)error);
                         task.SetException(new InvalidOperationException("Error occurs during WiFi scanning, " + (WiFiError)error));
                     }
-                    task.SetResult(true);
+                    else
+                    {
+                        task.SetResult(true);
+                    }
                     lock (_callback_map)
                     {
                         _callback_map.Remove(key);