void InstallHelper_groundwork() { Invocation ctx; Invocation_pushInvocation(&ctx, false); ctx.function = Function_INIT_WRITER; PG_TRY(); { char const *lpt = LOADPATH_TBL_NAME; char const *lptq = quote_identifier(lpt); jstring pljlp = String_createJavaStringFromNTS(pljavaLoadPath); jstring jlpt = String_createJavaStringFromNTS(lpt); jstring jlptq = String_createJavaStringFromNTS(lptq); if ( lptq != lpt ) pfree((void *)lptq); JNI_callStaticVoidMethod( s_InstallHelper_class, s_InstallHelper_groundwork, pljlp, jlpt, jlptq, pljavaLoadingAsExtension ? JNI_TRUE : JNI_FALSE, extensionExNihilo ? JNI_TRUE : JNI_FALSE); JNI_deleteLocalRef(pljlp); JNI_deleteLocalRef(jlpt); JNI_deleteLocalRef(jlptq); Invocation_popInvocation(false); } PG_CATCH(); { Invocation_popInvocation(true); PG_RE_THROW(); } PG_END_TRY(); }
/** * Initialize security */ void Backend_setJavaSecurity(bool trusted) { if(trusted != s_currentTrust) { /* GCJ has major issues here. Real work on SecurityManager and * related classes has just started in version 4.0.0. */ #ifndef GCJ JNI_callStaticVoidMethod(s_Backend_class, s_setTrusted, (jboolean)trusted); if(JNI_exceptionCheck()) { JNI_exceptionDescribe(); JNI_exceptionClear(); ereport(ERROR, ( errcode(ERRCODE_INTERNAL_ERROR), errmsg("Unable to initialize java security"))); } #endif s_currentTrust = trusted; } }
void InstallHelper_groundwork() { Invocation ctx; Invocation_pushInvocation(&ctx, false); ctx.function = Function_INIT_WRITER; PG_TRY(); { jstring pljlp = String_createJavaStringFromNTS(pljavaLoadPath); JNI_callStaticVoidMethod( s_InstallHelper_class, s_InstallHelper_groundwork, pljlp, pljavaLoadingAsExtension ? JNI_TRUE : JNI_FALSE, extensionExNihilo ? JNI_TRUE : JNI_FALSE); Invocation_popInvocation(false); } PG_CATCH(); { Invocation_popInvocation(true); PG_RE_THROW(); } PG_END_TRY(); }