Revert "[CONPRO-1333] Fix for crash in virtual device"
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcAccountManager.cpp
index a47278f..2d7e861 100644 (file)
@@ -84,22 +84,22 @@ JniOcAccountManager* JniOcAccountManager::getJniOcAccountManagerPtr(JNIEnv *env,
     return accountManager;
 }
 
-JniOnGetListener::Ptr JniOcAccountManager::addOnGetListener(JNIEnv* env, jobject jListener)
+JniOnGetListener* JniOcAccountManager::addOnGetListener(JNIEnv* env, jobject jListener)
 {
     return this->m_onGetManager.addListener(env, jListener, this);
 }
 
-JniOnPostListener::Ptr JniOcAccountManager::addOnPostListener(JNIEnv* env, jobject jListener)
+JniOnPostListener* JniOcAccountManager::addOnPostListener(JNIEnv* env, jobject jListener)
 {
     return this->m_onPostManager.addListener(env, jListener, this);
 }
 
-JniOnDeleteListener::Ptr JniOcAccountManager::addOnDeleteListener(JNIEnv* env, jobject jListener)
+JniOnDeleteListener* JniOcAccountManager::addOnDeleteListener(JNIEnv* env, jobject jListener)
 {
     return this->m_onDeleteManager.addListener(env, jListener, this);
 }
 
-JniOnObserveListener::Ptr JniOcAccountManager::addOnObserveListener(JNIEnv* env, jobject jListener)
+JniOnObserveListener* JniOcAccountManager::addOnObserveListener(JNIEnv* env, jobject jListener)
 {
     return this->m_onObserveManager.addListener(env, jListener, this);
 }
@@ -127,25 +127,18 @@ void JniOcAccountManager::removeOnObserveListener(JNIEnv* env, jobject jListener
 OCStackResult JniOcAccountManager::signUp(JNIEnv* env, const std::string& authProvider,
                                           const std::string& authCode, jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->signUp(authProvider, authCode, postCallback);
 }
@@ -154,25 +147,18 @@ OCStackResult JniOcAccountManager::signUp(JNIEnv* env, const std::string& authPr
                                           const std::string& authCode,
                                           const QueryParamsMap& options, jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->signUp(authProvider, authCode, options, postCallback);
 }
@@ -180,25 +166,18 @@ OCStackResult JniOcAccountManager::signUp(JNIEnv* env, const std::string& authPr
 OCStackResult JniOcAccountManager::signIn(JNIEnv* env, const std::string& userUuid,
                                           const std::string& accessToken, jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->signIn(userUuid, accessToken, postCallback);
 }
@@ -206,25 +185,18 @@ OCStackResult JniOcAccountManager::signIn(JNIEnv* env, const std::string& userUu
 OCStackResult JniOcAccountManager::signOut(JNIEnv* env, const std::string& accessToken,
                                            jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->signOut(accessToken, postCallback);
 }
@@ -233,25 +205,18 @@ OCStackResult JniOcAccountManager::refreshAccessToken(JNIEnv* env, const std::st
                                                       const std::string& refreshToken,
                                                       jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->refreshAccessToken(userUuid, refreshToken, postCallback);
 }
@@ -259,25 +224,18 @@ OCStackResult JniOcAccountManager::refreshAccessToken(JNIEnv* env, const std::st
 OCStackResult JniOcAccountManager::searchUser(JNIEnv* env, const QueryParamsMap& queryMap,
                                               jobject jListener)
 {
-    JniOnGetListener::Ptr onGetListener = addOnGetListener(env, jListener);
-
+    JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
     if (nullptr == onGetListener)
     {
         LOGE("onGetListener is null");
         return OC_STACK_ERROR;
     }
 
-    GetCallback getCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnGetListener> weak_ref)
+    GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onGetCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onGetListener);
+        onGetListener->onGetCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->searchUser(queryMap, getCallback);
 }
@@ -285,49 +243,36 @@ OCStackResult JniOcAccountManager::searchUser(JNIEnv* env, const QueryParamsMap&
 OCStackResult JniOcAccountManager::deleteDevice(JNIEnv* env, const std::string& accessToken,
                                                 const std::string& deviceId, jobject jListener)
 {
-    JniOnDeleteListener::Ptr onDeleteListener = addOnDeleteListener(env, jListener);
-
+    JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
     if (nullptr == onDeleteListener)
     {
         LOGE("onDeleteListener is null");
         return OC_STACK_ERROR;
     }
 
-    DeleteCallback deleteCallback = std::bind([](const HeaderOptions& opts,
-        const int eCode,
-        std::weak_ptr<JniOnDeleteListener> weak_ref)
+    DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
+        const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onDeleteCallback(opts, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, onDeleteListener);
+        onDeleteListener->onDeleteCallback(opts, eCode);
+    };
 
     return m_sharedAccountManager->deleteDevice(accessToken, deviceId, deleteCallback);
 }
 
 OCStackResult JniOcAccountManager::createGroup(JNIEnv* env, jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->createGroup(postCallback);
 }
@@ -335,25 +280,18 @@ OCStackResult JniOcAccountManager::createGroup(JNIEnv* env, jobject jListener)
 OCStackResult JniOcAccountManager::createGroup(JNIEnv* env, const QueryParamsMap& queryMap,
                                                jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->createGroup(queryMap, postCallback);
 }
@@ -361,49 +299,36 @@ OCStackResult JniOcAccountManager::createGroup(JNIEnv* env, const QueryParamsMap
 OCStackResult JniOcAccountManager::deleteGroup(JNIEnv* env, const std::string& groupId,
                                                jobject jListener)
 {
-    JniOnDeleteListener::Ptr onDeleteListener = addOnDeleteListener(env, jListener);
-
+    JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
     if (nullptr == onDeleteListener)
     {
         LOGE("onDeleteListener is null");
         return OC_STACK_ERROR;
     }
 
-    DeleteCallback deleteCallback = std::bind([](const HeaderOptions& opts,
-        const int eCode,
-        std::weak_ptr<JniOnDeleteListener> weak_ref)
+    DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
+        const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onDeleteCallback(opts, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, onDeleteListener);
+        onDeleteListener->onDeleteCallback(opts, eCode);
+    };
 
     return m_sharedAccountManager->deleteGroup(groupId, deleteCallback);
 }
 
 OCStackResult JniOcAccountManager::getGroupInfoAll(JNIEnv* env, jobject jListener)
 {
-    JniOnGetListener::Ptr onGetListener = addOnGetListener(env, jListener);
-
+    JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
     if (nullptr == onGetListener)
     {
         LOGE("onGetListener is null");
         return OC_STACK_ERROR;
     }
 
-    GetCallback getCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnGetListener> weak_ref)
+    GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onGetCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onGetListener);
+        onGetListener->onGetCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->getGroupInfoAll(getCallback);
 }
@@ -411,25 +336,18 @@ OCStackResult JniOcAccountManager::getGroupInfoAll(JNIEnv* env, jobject jListene
 OCStackResult JniOcAccountManager::getGroupInfo(JNIEnv* env, const std::string& groupId,
                                                 jobject jListener)
 {
-    JniOnGetListener::Ptr onGetListener = addOnGetListener(env, jListener);
-
+    JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
     if (nullptr == onGetListener)
     {
         LOGE("onGetListener is null");
         return OC_STACK_ERROR;
     }
 
-    GetCallback getCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnGetListener> weak_ref)
+    GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onGetCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onGetListener);
+        onGetListener->onGetCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->getGroupInfo(groupId, getCallback);
 }
@@ -438,25 +356,18 @@ OCStackResult JniOcAccountManager::addPropertyValueToGroup(JNIEnv* env, const st
                                                            const OCRepresentation& propertyValue,
                                                            jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->addPropertyValueToGroup(groupId, propertyValue, postCallback);
 }
@@ -466,25 +377,18 @@ OCStackResult JniOcAccountManager::deletePropertyValueFromGroup(JNIEnv* env,
                                                         const OCRepresentation& propertyValue,
                                                         jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->deletePropertyValueFromGroup(groupId, propertyValue,
                                                                 postCallback);
@@ -495,25 +399,18 @@ OCStackResult JniOcAccountManager::updatePropertyValueOnGroup(JNIEnv* env,
                                                         const OCRepresentation& propertyValue,
                                                         jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->updatePropertyValueOnGroup(groupId, propertyValue,
                                                               postCallback);
@@ -521,26 +418,18 @@ OCStackResult JniOcAccountManager::updatePropertyValueOnGroup(JNIEnv* env,
 
 OCStackResult JniOcAccountManager::observeGroup(JNIEnv* env, jobject jListener)
 {
-    JniOnObserveListener::Ptr onObserveListener = addOnObserveListener(env, jListener);
-
+    JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
     if (nullptr == onObserveListener)
     {
         LOGE("onObserveListener is null");
         return OC_STACK_ERROR;
     }
 
-    ObserveCallback observeCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int& eCode,
-        const int& sequenceNumber,
-        std::weak_ptr<JniOnObserveListener> weak_ref)
+    ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onObserveCallback(opts, rep, eCode, sequenceNumber);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, onObserveListener);
+        onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
+    };
 
     return m_sharedAccountManager->observeGroup(observeCallback);
 }
@@ -552,26 +441,18 @@ OCStackResult JniOcAccountManager::cancelObserveGroup()
 
 OCStackResult JniOcAccountManager::observeInvitation(JNIEnv* env, jobject jListener)
 {
-    JniOnObserveListener::Ptr onObserveListener = addOnObserveListener(env, jListener);
-
+    JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
     if (nullptr == onObserveListener)
     {
         LOGE("onObserveListener is null");
         return OC_STACK_ERROR;
     }
 
-    ObserveCallback observeCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int& eCode,
-        const int& sequenceNumber,
-        std::weak_ptr<JniOnObserveListener> weak_ref)
+    ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onObserveCallback(opts, rep, eCode, sequenceNumber);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, onObserveListener);
+        onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
+    };
 
     return m_sharedAccountManager->observeInvitation(observeCallback);
 }
@@ -584,25 +465,18 @@ OCStackResult JniOcAccountManager::cancelObserveInvitation()
 OCStackResult JniOcAccountManager::sendInvitation(JNIEnv* env, const std::string& groupId,
                                                   const std::string& userUuid, jobject jListener)
 {
-    JniOnPostListener::Ptr onPostListener = addOnPostListener(env, jListener);
-
+    JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
     if (nullptr == onPostListener)
     {
         LOGE("onPostListener is null");
         return OC_STACK_ERROR;
     }
 
-    PostCallback postCallback = std::bind([](const HeaderOptions& opts,
-        const OCRepresentation& rep,
-        const int eCode,
-        std::weak_ptr<JniOnPostListener> weak_ref)
+    PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
+        const OCRepresentation& rep, const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onPostCallback(opts, rep, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, onPostListener);
+        onPostListener->onPostCallback(opts, rep, eCode);
+    };
 
     return m_sharedAccountManager->sendInvitation(groupId, userUuid, postCallback);
 }
@@ -610,24 +484,18 @@ OCStackResult JniOcAccountManager::sendInvitation(JNIEnv* env, const std::string
 OCStackResult JniOcAccountManager::cancelInvitation(JNIEnv* env, const std::string& groupId,
                                                     const std::string& userUuid, jobject jListener)
 {
-    JniOnDeleteListener::Ptr onDeleteListener = addOnDeleteListener(env, jListener);
-
+    JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
     if (nullptr == onDeleteListener)
     {
         LOGE("onDeleteListener is null");
         return OC_STACK_ERROR;
     }
 
-    DeleteCallback deleteCallback = std::bind([](const HeaderOptions& opts,
-        const int eCode,
-        std::weak_ptr<JniOnDeleteListener> weak_ref)
+    DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
+        const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onDeleteCallback(opts, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, onDeleteListener);
+        onDeleteListener->onDeleteCallback(opts, eCode);
+    };
 
     return m_sharedAccountManager->cancelInvitation(groupId, userUuid, deleteCallback);
 }
@@ -635,24 +503,18 @@ OCStackResult JniOcAccountManager::cancelInvitation(JNIEnv* env, const std::stri
 OCStackResult JniOcAccountManager::replyToInvitation(JNIEnv* env, const std::string& groupId,
                                                      const bool accept, jobject jListener)
 {
-    JniOnDeleteListener::Ptr onDeleteListener = addOnDeleteListener(env, jListener);
-
+    JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
     if (nullptr == onDeleteListener)
     {
         LOGE("onDeleteListener is null");
         return OC_STACK_ERROR;
     }
 
-    DeleteCallback deleteCallback = std::bind([](const HeaderOptions& opts,
-        const int eCode,
-        std::weak_ptr<JniOnDeleteListener> weak_ref)
+    DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
+        const int eCode)
     {
-        auto listener = weak_ref.lock();
-        if (listener)
-        {
-            listener->onDeleteCallback(opts, eCode);
-        }
-    }, std::placeholders::_1, std::placeholders::_2, onDeleteListener);
+        onDeleteListener->onDeleteCallback(opts, eCode);
+    };
 
     return m_sharedAccountManager->replyToInvitation(groupId, accept, deleteCallback);
 }