From: KIM JungYong Date: Thu, 23 Mar 2017 08:59:45 +0000 (+0900) Subject: Fix stopCaching logic in the RE client. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d94741fc2e17ba77773d38b2d2b4eadb30c49511;p=contrib%2Fiotivity.git Fix stopCaching logic in the RE client. When caught exception at calling stopCaching(), can not start caching again, reason that IsCaching boolean does not changed in RE client. In this patch, exception handling and disable IsCaching flag. Change-Id: I80f4629d21ea16799f945c90d56f70f81bc38e90 Signed-off-by: KIM JungYong Reviewed-on: https://gerrit.iotivity.org/gerrit/18125 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi Tested-by: Uze Choi --- diff --git a/service/resource-encapsulation/src/resourceCache/src/ResourceCacheManager.cpp b/service/resource-encapsulation/src/resourceCache/src/ResourceCacheManager.cpp index c57c7f0..7b0728c 100644 --- a/service/resource-encapsulation/src/resourceCache/src/ResourceCacheManager.cpp +++ b/service/resource-encapsulation/src/resourceCache/src/ResourceCacheManager.cpp @@ -128,7 +128,16 @@ namespace OIC if (observeIns != observeCacheIDmap.end()) { - (observeIns->second)->stopCache(); + try + { + (observeIns->second)->stopCache(); + } + catch (...) + { + (observeIns->second).reset(); + observeCacheIDmap.erase(observeIns); + throw; + } (observeIns->second).reset(); observeCacheIDmap.erase(observeIns); return; diff --git a/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp b/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp index 2f73a00..f592c0f 100644 --- a/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp +++ b/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp @@ -332,7 +332,19 @@ namespace OIC return; } - ResourceCacheManager::getInstance()->cancelResourceCache(m_cacheId); + try + { + ResourceCacheManager::getInstance()->cancelResourceCache(m_cacheId); + } + catch (const RCSInvalidParameterException &) + { + throw; + } + catch (...) + { + m_cacheId = 0; + throw; + } m_cacheId = 0; }