From 583e9b645746cf2f58273c86cc8d3a0513e4c69a Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Thu, 13 Apr 2017 21:56:04 +0900 Subject: [PATCH] Modify internal request callback add exception handling and releasing resources. Change-Id: Ic43f6159548a193c37aaa1cde99a5bac8332e04f Signed-off-by: jongmyeongko --- .../Tizen.Applications/PackageManager.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs b/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs index 836d3cb..6b49900 100644 --- a/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs +++ b/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs @@ -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); } } }; -- 2.7.4