From 9888343ffa26d8d1123630a2c1c82789c2176d96 Mon Sep 17 00:00:00 2001 From: Jihun Ha Date: Wed, 14 Oct 2015 10:59:45 +0900 Subject: [PATCH] Add exception handling logic in things configuration When calling constructResourceObject, it probably throws an exception. To avoid a sudden crash for it, we add exception handling to it. Additionaly, in oicgroup file, there is a condition statement which may lead wrong way from what we expect. Thus we remove it. Change-Id: Ibc12cd261ca875738446ad3b10b199ae15497654 Signed-off-by: Jihun Ha Reviewed-on: https://gerrit.iotivity.org/gerrit/3865 Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka (cherry picked from commit d22a600bab5001dbe770894de100853833a637ef) Reviewed-on: https://gerrit.iotivity.org/gerrit/3877 --- resource/csdk/stack/src/oicgroup.c | 5 ----- service/things-manager/sdk/src/ThingsConfiguration.cpp | 12 +++++++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/resource/csdk/stack/src/oicgroup.c b/resource/csdk/stack/src/oicgroup.c index 864cced..20d8735 100755 --- a/resource/csdk/stack/src/oicgroup.c +++ b/resource/csdk/stack/src/oicgroup.c @@ -713,11 +713,6 @@ OCStackResult BuildActionSetFromString(OCActionSet **set, char* actiondesc) { OC_LOG(INFO, TAG, "Build OCAction Instance."); - if(action) - { - OICFree(action->resourceUri); - OICFree(action); - } action = (OCAction*) OICMalloc(sizeof(OCAction)); VARIFY_POINTER_NULL(action, result, exit) memset(action, 0, sizeof(OCAction)); diff --git a/service/things-manager/sdk/src/ThingsConfiguration.cpp b/service/things-manager/sdk/src/ThingsConfiguration.cpp index e1aef9b..1d93883 100755 --- a/service/things-manager/sdk/src/ThingsConfiguration.cpp +++ b/service/things-manager/sdk/src/ThingsConfiguration.cpp @@ -327,10 +327,16 @@ namespace OIC std::string host = getHostFromURI(oit->getUri()); - tempResource = OCPlatform::constructResourceObject(host, uri, CT_ADAPTER_IP, true, - oit->getResourceTypes(), m_if); + try + { + tempResource = OCPlatform::constructResourceObject(host, uri, CT_ADAPTER_IP, true, + oit->getResourceTypes(), m_if); - p_resources.push_back(tempResource); + p_resources.push_back(tempResource); + } catch (std::exception& e) + { + std::cout << "Exception: " << e.what() << std::endl; + } } // Send GET messages to the child resources in turn. -- 2.7.4