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 36a298d..4354032 100644 (file)
@@ -417,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);
@@ -460,7 +460,7 @@ Java_org_iotivity_service_server_RcsResourceObject_nativeGetAttributeValue
 
         return valueObj;
     }
-    catch(const InvalidKeyException& e)
+    catch(const RCSInvalidKeyException& e)
     {
         return nullptr;
     }
@@ -540,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
@@ -553,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
@@ -602,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);
     }
 }