Removed duplicated code blocks (#615) 95/218795/1
authorkush.agrawal@samsung.com <kush.agrawal@samsung.com>
Thu, 21 Nov 2019 14:30:39 +0000 (20:00 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Thu, 28 Nov 2019 07:26:28 +0000 (16:26 +0900)
https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/615
(cherry-picked from 1dd8501207e6c6865cf7bd0d5483003c4bad1ff7)

Change-Id: I2aae5778988d75b113bf4535241781a5f1678c84
Signed-off-by: Kush <kush.agrawal@samsung.com>
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
resource/csdk/connectivity/src/bt_le_adapter/android/caleclient.c [changed mode: 0644->0755]
resource/csdk/connectivity/src/bt_le_adapter/android/caleserver.c [changed mode: 0644->0755]
resource/csdk/connectivity/src/bt_le_adapter/android/caleutils.c [changed mode: 0644->0755]
resource/csdk/connectivity/src/bt_le_adapter/android/caleutils.h [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 9bf9330..6207788
@@ -212,19 +212,10 @@ static void CALEScanThread(void* object)
 {
     (void)object;
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return;
     }
 
     oc_mutex_lock(g_threadScanIntervalMutex);
@@ -350,31 +341,13 @@ CAResult_t CALECreateJniInterfaceObject()
 {
     OIC_LOG(DEBUG, TAG, "CALECreateJniInterfaceObject");
 
-    if (!g_context)
-    {
-        OIC_LOG(ERROR, TAG, "g_context is null");
-        return CA_STATUS_FAILED;
-    }
-
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_context, TAG, "g_context is null", CA_STATUS_FAILED);
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     jmethodID mid_getApplicationContext = CAGetJNIMethodID(env, "android/content/Context",
@@ -488,25 +461,12 @@ CAResult_t CALEClientInitialize()
     CALEClientAddUuid(OIC_GATT_CUSTOM_UUID2, CA_LE_TYPE_CUSTOM_UUID);
     CALEClientAddUuid(OIC_GATT_CUSTOM_UUID3, CA_LE_TYPE_CUSTOM_UUID);
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     g_jniIntSdk = CALEGetBuildVersion(env);
@@ -585,25 +545,12 @@ void CALEClientTerminate()
 {
     OIC_LOG(DEBUG, TAG, "CALEClientTerminate");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return;
-    }
+    VERIFY_NON_NULL_VOID(g_jvm, TAG, "g_jvm is null");
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return ;
     }
 
     // stop scan
@@ -698,25 +645,12 @@ jobject CALEClientHiddenConnectGatt(jobject btDevice, const char* address, jbool
 {
     OIC_LOG(INFO, TAG, "IN - CALEClientHiddenConnectGatt");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return NULL;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", NULL);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return NULL;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return NULL;
     }
 
     jstring jni_address = (*env)->NewStringUTF(env, address);
@@ -766,25 +700,12 @@ CAResult_t CALEClientDestroyJniInterface()
 {
     OIC_LOG(DEBUG, TAG, "CALEClientDestroyJniInterface");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     jclass jni_LeInterface = (*env)->FindClass(env, "org/iotivity/ca/CaLeClientInterface");
@@ -871,25 +792,12 @@ CAResult_t CALEClientSendMulticastMessage(const uint8_t* data,
     OIC_LOG_V(DEBUG, TAG, "CALEClientSendMulticastMessage(%p)", data);
     VERIFY_NON_NULL(data, TAG, "data is null");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALEClientSendMulticastMessageImpl(env, data, dataLen);
@@ -1044,24 +952,12 @@ CAResult_t CALEClientSendUnicastMessageImpl(const char* address, const uint8_t*
               data);
     VERIFY_NON_NULL(address, TAG, "address is null");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     oc_mutex_lock(g_threadSendMutex);
@@ -1490,9 +1386,11 @@ CAResult_t CALEClientStartScan()
         return CA_STATUS_FAILED;
     }
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
+
+    JNIEnv* env = NULL;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
         return CA_STATUS_FAILED;
     }
 
@@ -1500,19 +1398,6 @@ CAResult_t CALEClientStartScan()
     {
         g_setFullScanFlag = true;
     }
-    bool isAttached = false;
-    JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
-    }
 
     OIC_LOG(DEBUG, TAG, "CALEClientStartScan");
 
@@ -2481,24 +2366,12 @@ error_exit:
 
 CAResult_t CALEClientStopScan()
 {
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CA_STATUS_FAILED;
@@ -3227,20 +3100,12 @@ CAResult_t CALEClientDiscoverServices(JNIEnv *env, jobject bluetoothGatt)
 static void CALEWriteCharacteristicThread(void* object)
 {
     VERIFY_NON_NULL_VOID(object, TAG, "object is null");
+    VERIFY_NON_NULL_VOID(g_jvm, TAG, "g_jvm is null");
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return ;
     }
 
     jobject gatt = (jobject)object;
@@ -3745,25 +3610,12 @@ jbyteArray CALEClientGetValueFromCharacteristic(JNIEnv *env, jobject characteris
 
 CAResult_t CALEClientCreateUUIDList()
 {
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     // create new object array
@@ -4881,7 +4733,7 @@ CAResult_t CALEClientInitGattMutexVaraibles()
 
 void CALEClientTerminateGattMutexVariables()
 {
-   
+
     oc_mutex_free(g_bleServerBDAddressMutex);
     g_bleServerBDAddressMutex = NULL;
 
@@ -4970,25 +4822,12 @@ void CAStopLEGattClient()
 {
     OIC_LOG(DEBUG, TAG, "CAStopBLEGattClient");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return;
-    }
+    VERIFY_NON_NULL_VOID(g_jvm, TAG, "g_jvm is null");
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return ;
     }
 
     CAResult_t ret = CALEClientDisconnectAll(env);
@@ -5085,9 +4924,9 @@ CAResult_t CAUpdateCharacteristicsToAllGattServers(const uint8_t *data, uint32_t
 
 void CASetLEReqRespClientCallback(CABLEDataReceivedCallback callback)
 {
-    
+
     g_CABLEClientDataReceivedCallback = callback;
-    
+
 }
 
 void CASetLEClientThreadPoolHandle(ca_thread_pool_t handle)
old mode 100644 (file)
new mode 100755 (executable)
index 3cbb821..98bd82e
@@ -96,32 +96,13 @@ CAResult_t CALEServerCreateJniInterfaceObject()
 {
     OIC_LOG(DEBUG, TAG, "CALEServerCreateJniInterfaceObject");
 
-    if (!g_context)
-    {
-        OIC_LOG(ERROR, TAG, "g_context is null");
-        return CA_STATUS_FAILED;
-    }
-
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_context, TAG, "g_context is null",CA_STATUS_FAILED);
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     jclass jni_LEInterface = (*env)->FindClass(env, "org/iotivity/ca/CaLeServerInterface");
@@ -424,26 +405,12 @@ CAResult_t CALEServerStartAdvertise()
         return CA_STATUS_OK;
     }
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     // start advertise
@@ -765,26 +732,12 @@ error_exit:
 
 CAResult_t CALEServerStopAdvertise()
 {
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALEServerStopAdvertiseImpl(env, g_leAdvertiseCallback);
@@ -1550,26 +1503,12 @@ CAResult_t CALEServerInitialize()
 
     CALeServerJniInit();
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALECheckPlatformVersion(env, 21);
@@ -1627,26 +1566,12 @@ void CALEServerTerminate()
 {
     OIC_LOG(DEBUG, TAG, "IN - CALEServerTerminate");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return;
-    }
+    VERIFY_NON_NULL_VOID(g_jvm, TAG, "g_jvm is null");
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return ;
     }
 
     if (g_sendBuffer)
@@ -1683,26 +1608,12 @@ CAResult_t CALEServerSendUnicastMessage(const char* address, const uint8_t* data
     VERIFY_NON_NULL(address, TAG, "address is null");
     VERIFY_NON_NULL(data, TAG, "data is null");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALEServerSendUnicastMessageImpl(env, address, data, dataLen);
@@ -1724,26 +1635,12 @@ CAResult_t CALEServerSendMulticastMessage(const uint8_t* data, uint32_t dataLen)
     OIC_LOG_V(DEBUG, TAG, "CALEServerSendMulticastMessage(%p)", data);
     VERIFY_NON_NULL(data, TAG, "data is null");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALEServerSendMulticastMessageImpl(env, data, dataLen);
@@ -1776,26 +1673,12 @@ CAResult_t CALEServerStartMulticastServer()
         return CA_STATUS_FAILED;
     }
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     g_isStartServer = true;
@@ -2685,26 +2568,12 @@ CAResult_t CAStopLEGattServer()
 {
     OIC_LOG(DEBUG, TAG, "CAStopLEGattServer");
 
-    if (!g_jvm)
-    {
-        OIC_LOG(ERROR, TAG, "g_jvm is null");
-        return CA_STATUS_FAILED;
-    }
+    VERIFY_NON_NULL_RET(g_jvm, TAG, "g_jvm is null", CA_STATUS_FAILED);
 
-    bool isAttached = false;
     JNIEnv* env = NULL;
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);
-    if (JNI_OK != res)
-    {
-        OIC_LOG(INFO, TAG, "Could not get JNIEnv pointer");
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
-
-        if (JNI_OK != res)
-        {
-            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
-            return CA_STATUS_FAILED;
-        }
-        isAttached = true;
+    bool isAttached = false;
+    if (!CALEAttachCurrentThread(&env, g_jvm, &isAttached)){
+        return CA_STATUS_FAILED;
     }
 
     CAResult_t ret = CALEServerGattClose(env, g_bluetoothGattServer);
old mode 100644 (file)
new mode 100755 (executable)
index e41acfa..0d8b359
@@ -581,3 +581,21 @@ jstring CALEGetAddressFromGatt(JNIEnv *env, jobject gatt)
 
     return jni_address;
 }
+
+bool CALEAttachCurrentThread(JNIEnv **env, JavaVM *g_jvm, bool *attach_status)
+{
+    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) env, JNI_VERSION_1_6);
+    if (JNI_OK != res)
+    {
+        res = (*g_jvm)->AttachCurrentThread(g_jvm, env, NULL);
+
+        if (JNI_OK != res)
+        {
+            OIC_LOG(ERROR, TAG, "AttachCurrentThread has failed");
+            return false;
+        }
+        *attach_status = true;
+    }
+
+    return true;
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index ee52303..b4764c3
@@ -202,6 +202,8 @@ jobject CALEGetRemoteDevice(JNIEnv *env, jstring address);
  */
 jstring CALEGetAddressFromGatt(JNIEnv *env, jobject gatt);
 
+bool CALEAttachCurrentThread(JNIEnv **env, JavaVM *g_jvm, bool *attach_status);
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif