fix bug on JniOnObserveListener related to AccountManager
authorJaewook Jung <jw0213.jung@samsung.com>
Tue, 30 Aug 2016 09:29:33 +0000 (18:29 +0900)
committerJon A. Cruz <jon@joncruz.org>
Wed, 31 Aug 2016 20:05:56 +0000 (20:05 +0000)
Change-Id: I5d5f77838c66aff4cfe1c4bbf7d04d5386a222f2
Signed-off-by: Jaewook Jung <jw0213.jung@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11129
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Reviewed-by: Jon A. Cruz <jon@joncruz.org>
android/android_api/base/jni/JniOnObserveListener.cpp

index 1bb3c23..060b19e 100644 (file)
@@ -166,7 +166,18 @@ void JniOnObserveListener::onObserveCallback(const HeaderOptions headerOptions,
             env->DeleteLocalRef(jHeaderOptionList);
             jthrowable ex = env->ExceptionOccurred();
             env->ExceptionClear();
+#ifndef WITH_CLOUD
             m_ownerResource->removeOnObserveListener(env, m_jwListener);
+#else
+            if (nullptr != m_ownerResource)
+            {
+                m_ownerResource->removeOnObserveListener(env, m_jwListener);
+            }
+            if (nullptr != m_ownerAccountManager)
+            {
+                m_ownerAccountManager->removeOnObserveListener(env, m_jwListener);
+            }
+#endif
             env->Throw((jthrowable)ex);
         }