Fix handler setters of RcsResourceObject of resource-encapsulation android api.
[platform/upstream/iotivity.git] / service / resource-encapsulation / android / service / src / main / jni / JniRcsResourceObject.cpp
index 34e129f..4354032 100644 (file)
@@ -202,18 +202,17 @@ namespace
 
         if (responseAttrsObj)
         {
-            return RESPONSE::create(toNativeAttributes(env.get(), responseAttrsObj), OC_EH_OK,
-                    errorCode);
+            return RESPONSE::create(toNativeAttributes(env.get(), responseAttrsObj), errorCode);
         }
 
-        return RESPONSE::create(OC_EH_OK, errorCode);
+        return RESPONSE::create(errorCode);
     }
 
     RCSGetResponse onGetRequest(const RCSRequest& request, const RCSResourceAttributes& attrs,
             const JavaGlobalRef& listener)
     {
         ScopedEnvWrapper env;
-        EXPECT_RET(env, "env is null!", RCSGetResponse::create(OC_EH_ERROR, -1));
+        EXPECT_RET(env, "env is null!", RCSGetResponse::create(-1));
 
         try
         {
@@ -227,14 +226,14 @@ namespace
             env->ExceptionDescribe();
             env->ExceptionClear();
         }
-        return RCSGetResponse::create(OC_EH_ERROR, -1);
+        return RCSGetResponse::create({ }, -1);
     }
 
     RCSSetResponse onSetRequest(const RCSRequest& request, const RCSResourceAttributes& attrs,
              const JavaGlobalRef& listener)
     {
         ScopedEnvWrapper env;
-        EXPECT_RET(env, "env is null!", RCSSetResponse::create(OC_EH_ERROR, -1));
+        EXPECT_RET(env, "env is null!", RCSSetResponse::create(-1));
 
         try
         {
@@ -251,7 +250,7 @@ namespace
             env->ExceptionDescribe();
             env->ExceptionClear();
         }
-        return RCSSetResponse::create(OC_EH_ERROR, -1);
+        return RCSSetResponse::create(-1);
     }
 
 
@@ -418,7 +417,7 @@ Java_org_iotivity_service_server_RcsResourceObject_nativeBuild
 
         return resourceObj;
     }
-    catch (const PlatformException& e)
+    catch (const RCSPlatformException& e)
     {
         LOGE("%s", e.what());
         throwPlatformException(env, e);
@@ -461,7 +460,7 @@ Java_org_iotivity_service_server_RcsResourceObject_nativeGetAttributeValue
 
         return valueObj;
     }
-    catch(const InvalidKeyException& e)
+    catch(const RCSInvalidKeyException& e)
     {
         return nullptr;
     }
@@ -541,8 +540,15 @@ Java_org_iotivity_service_server_RcsResourceObject_nativeSetGetRequestHandler
     auto res = getResource(env, obj);
     VERIFY_NO_EXC(env);
 
-    res->setGetRequestHandler(std::bind(onGetRequest, std::placeholders::_1, std::placeholders::_2,
-            JavaGlobalRef{ env, listenerObj }));
+    if (listenerObj)
+    {
+        res->setGetRequestHandler(std::bind(onGetRequest, std::placeholders::_1, std::placeholders::_2,
+                JavaGlobalRef{ env, listenerObj }));
+    }
+    else
+    {
+        res->setGetRequestHandler({ });
+    }
 }
 
 JNIEXPORT void JNICALL
@@ -554,8 +560,15 @@ Java_org_iotivity_service_server_RcsResourceObject_nativeSetSetRequestHandler
     auto res = getResource(env, obj);
     VERIFY_NO_EXC(env);
 
-    res->setSetRequestHandler(std::bind(onSetRequest, std::placeholders::_1, std::placeholders::_2,
-           JavaGlobalRef{ env, listenerObj }));
+    if (listenerObj)
+    {
+        res->setSetRequestHandler(std::bind(onSetRequest, std::placeholders::_1,
+                std::placeholders::_2, JavaGlobalRef{ env, listenerObj }));
+    }
+    else
+    {
+        res->setSetRequestHandler({ });
+    }
 }
 
 JNIEXPORT void JNICALL
@@ -603,7 +616,7 @@ JNIEXPORT void JNICALL Java_org_iotivity_service_server_RcsResourceObject_native
     {
         res->notify();
     }
-    catch (const PlatformException& e) {
+    catch (const RCSPlatformException& e) {
         throwPlatformException(env, e);
     }
 }