diff --git a/wrappers/java/jni.mustache b/wrappers/java/jni.mustache index c712d5fa7..7c5220708 100644 --- a/wrappers/java/jni.mustache +++ b/wrappers/java/jni.mustache @@ -386,8 +386,10 @@ void Java_{{jniPackage}}{{className}}Impl_removeListener(JNIEnv* env, jobject th bctbx_list_t *it; for (it = (bctbx_list_t *)cbs_list; it != NULL; it = it->next) { {{classCName}}Cbs *cbs = ({{classCName}}Cbs *)it->data; - if ({{cPrefix}}_cbs_get_user_data(cbs) == jlistener) { + jobject listener = (jobject) {{cPrefix}}_cbs_get_user_data(cbs); + if (env->IsSameObject(listener, jlistener)) { {{cPrefix}}_remove_callbacks(cptr, cbs); + env->DeleteGlobalRef(listener); break; } }