diff --git a/be/src/vec/functions/function_java_udf.cpp b/be/src/vec/functions/function_java_udf.cpp index 751bbdbe55..0ae649b768 100644 --- a/be/src/vec/functions/function_java_udf.cpp +++ b/be/src/vec/functions/function_java_udf.cpp @@ -83,6 +83,7 @@ Status JavaFunctionCall::open(FunctionContext* context, FunctionContext::Functio } RETURN_ERROR_IF_EXC(env); RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, jni_ctx->executor, &jni_ctx->executor)); + jni_ctx->open_successes = true; } return Status::OK(); } diff --git a/be/src/vec/functions/function_java_udf.h b/be/src/vec/functions/function_java_udf.h index a30a93b355..bb493aa7ed 100644 --- a/be/src/vec/functions/function_java_udf.h +++ b/be/src/vec/functions/function_java_udf.h @@ -123,10 +123,15 @@ private: jmethodID executor_close_id; jobject executor = nullptr; bool is_closed = false; + bool open_successes = false; JniContext() = default; void close() { + if (!open_successes) { + LOG_WARNING("maybe open failed, need check the reason"); + return; //maybe open failed, so can't call some jni + } if (is_closed) { return; }