Modify internal request callback
authorjongmyeongko <jongmyeong.ko@samsung.com>
Thu, 13 Apr 2017 12:56:04 +0000 (21:56 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Fri, 12 May 2017 08:45:13 +0000 (17:45 +0900)
add exception handling and releasing resources.

Change-Id: Ic43f6159548a193c37aaa1cde99a5bac8332e04f
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs

index 836d3cb..6b49900 100644 (file)
@@ -170,11 +170,23 @@ namespace Tizen.Applications
         {
             if (RequestCallbacks.ContainsKey(id))
             {
-                RequestCallbacks[id](packageType, packageId, (PackageEventType)eventType, (PackageEventState)eventState, progress);
-                if (eventState == Interop.PackageManager.PackageEventState.Completed || eventState == Interop.PackageManager.PackageEventState.Failed)
+                try
                 {
-                    Log.Debug(LogTag, string.Format("release request handle for id : {0}", id));
+                    RequestCallbacks[id](packageType, packageId, (PackageEventType)eventType, (PackageEventState)eventState, progress);
+                    if (eventState == Interop.PackageManager.PackageEventState.Completed || eventState == Interop.PackageManager.PackageEventState.Failed)
+                    {
+                        Log.Debug(LogTag, string.Format("release request handle for id : {0}", id));
+                        RequestHandles[id].Dispose();
+                        RequestHandles.Remove(id);
+                        RequestCallbacks.Remove(id);
+                    }
+                }
+                catch (Exception e)
+                {
+                    Log.Warn(LogTag, e.Message);
                     RequestHandles[id].Dispose();
+                    RequestHandles.Remove(id);
+                    RequestCallbacks.Remove(id);
                 }
             }
         };