[fix](jdbc catalog) fix jdbc-connector coredump as get env return nullptr (#32217)
This commit is contained in:
@ -140,7 +140,7 @@ const std::string GetDorisJNIClasspathOption() {
|
||||
jvm_options[i] = {const_cast<char*>(options[i].c_str()), nullptr};
|
||||
}
|
||||
|
||||
JNIEnv* env;
|
||||
JNIEnv* env = nullptr;
|
||||
JavaVMInitArgs vm_args;
|
||||
vm_args.version = JNI_VERSION_1_8;
|
||||
vm_args.options = jvm_options.get();
|
||||
@ -406,7 +406,7 @@ Status JniUtil::Init() {
|
||||
RETURN_IF_ERROR(LibJVMLoader::instance().load());
|
||||
|
||||
// Get the JNIEnv* corresponding to current thread.
|
||||
JNIEnv* env;
|
||||
JNIEnv* env = nullptr;
|
||||
RETURN_IF_ERROR(JniUtil::GetJNIEnv(&env));
|
||||
|
||||
if (env == NULL) return Status::InternalError("Failed to get/create JVM");
|
||||
|
||||
@ -52,9 +52,16 @@ public:
|
||||
static Status GetJNIEnv(JNIEnv** env) {
|
||||
if (tls_env_) {
|
||||
*env = tls_env_;
|
||||
return Status::OK();
|
||||
} else {
|
||||
Status status = GetJNIEnvSlowPath(env);
|
||||
if (!status.ok()) {
|
||||
return status;
|
||||
}
|
||||
}
|
||||
return GetJNIEnvSlowPath(env);
|
||||
if (*env == nullptr) {
|
||||
return Status::RuntimeError("Failed to get JNIEnv: it is nullptr.");
|
||||
}
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
static Status GetGlobalClassRef(JNIEnv* env, const char* class_str,
|
||||
|
||||
@ -60,7 +60,7 @@ public:
|
||||
AggregateJavaUdafData(int64_t num_args) { argument_size = num_args; }
|
||||
|
||||
~AggregateJavaUdafData() {
|
||||
JNIEnv* env;
|
||||
JNIEnv* env = nullptr;
|
||||
if (!JniUtil::GetJNIEnv(&env).ok()) {
|
||||
LOG(WARNING) << "Failed to get JNIEnv";
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ Status JdbcConnector::close(Status /*unused*/) {
|
||||
if (_is_in_transaction) {
|
||||
RETURN_IF_ERROR(abort_trans());
|
||||
}
|
||||
JNIEnv* env;
|
||||
JNIEnv* env = nullptr;
|
||||
RETURN_IF_ERROR(JniUtil::GetJNIEnv(&env));
|
||||
env->DeleteGlobalRef(_executor_factory_clazz);
|
||||
env->DeleteGlobalRef(_executor_clazz);
|
||||
|
||||
Reference in New Issue
Block a user