remove_java_obj_reflection_from_hashtable(java_obj, jEnv);  (*jEnv)->DeleteGlobalRef(jEnv, java_obj);
if (java_obj) { remove_java_obj_reflection_from_hashtable(java_obj, jEnv); (*jEnv)->DeleteGlobalRef(jEnv, java_obj); }
JavaObject_finalize(JSContext *cx, JSObject *obj){    JavaObjectWrapper *java_wrapper;    jobject java_obj;    JNIEnv *jEnv;    jsj_MapJSContextToJSJThread(cx, &jEnv);    if (!jEnv)        return;    java_wrapper = JS_GetPrivate(cx, obj);    if (!java_wrapper)        return;    java_obj = java_wrapper->java_obj;    remove_java_obj_reflection_from_hashtable(java_obj, jEnv);    (*jEnv)->DeleteGlobalRef(jEnv, java_obj);    jsj_ReleaseJavaClassDescriptor(cx, jEnv, java_wrapper->class_descriptor);    /* FIXME - Delete JavaMemberValues */    /* if (java_wrapper->invoke_java_method_func_obj)        JS_RemoveRoot(cx, &java_wrapper->invoke_java_method_func_obj); */    JS_free(cx, java_wrapper);}