HDFS-12494. libhdfs SIGSEGV in setTLSExceptionStrings. Contributed by John Zhuge.
(cherry picked from commit 2856eb207b
)
This commit is contained in:
parent
ae9f82c603
commit
7dfe97d84f
|
@ -522,19 +522,21 @@ JNIEnv* getJNIEnv(void)
|
|||
/* Create a ThreadLocalState for this thread */
|
||||
state = threadLocalStorageCreate();
|
||||
if (!state) {
|
||||
mutexUnlock(&jvmMutex);
|
||||
fprintf(stderr, "getJNIEnv: Unable to create ThreadLocalState\n");
|
||||
return NULL;
|
||||
}
|
||||
if (threadLocalStorageSet(state)) {
|
||||
mutexUnlock(&jvmMutex);
|
||||
goto fail;
|
||||
}
|
||||
THREAD_LOCAL_STORAGE_SET_QUICK(state);
|
||||
|
||||
state->env = getGlobalJNIEnv();
|
||||
mutexUnlock(&jvmMutex);
|
||||
if (!state->env) {
|
||||
goto fail;
|
||||
}
|
||||
if (threadLocalStorageSet(state)) {
|
||||
goto fail;
|
||||
}
|
||||
THREAD_LOCAL_STORAGE_SET_QUICK(state);
|
||||
|
||||
return state->env;
|
||||
|
||||
fail:
|
||||
|
|
Loading…
Reference in New Issue