diff options
author | jongmyeongko <jongmyeong.ko@samsung.com> | 2017-04-13 21:56:04 +0900 |
---|---|---|
committer | jongmyeongko <jongmyeong.ko@samsung.com> | 2017-05-12 17:45:13 +0900 |
commit | 77701c3589a683ad6833bbe6c0d6574d3f86b500 (patch) | |
tree | 5f396610e0d306ca65bc48040fdbc20751f3f004 | |
parent | ad29f69a0c441f38f4d91e3945ba09d80f3eb576 (diff) | |
download | application-77701c3589a683ad6833bbe6c0d6574d3f86b500.tar.gz application-77701c3589a683ad6833bbe6c0d6574d3f86b500.tar.bz2 application-77701c3589a683ad6833bbe6c0d6574d3f86b500.zip |
Modify internal request callback
add exception handling and releasing resources.
Change-Id: Ic43f6159548a193c37aaa1cde99a5bac8332e04f
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
-rw-r--r-- | Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs b/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs index 836d3cb..6b49900 100644 --- a/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs +++ b/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); } } }; |