--- old/src/share/vm/prims/jni.cpp 2015-11-19 01:02:17.857021564 -0500 +++ new/src/share/vm/prims/jni.cpp 2015-11-19 01:02:16.312934689 -0500 @@ -4186,7 +4186,7 @@ } */ - Thread* t = ThreadLocalStorage::get_thread_slow(); + Thread* t = Thread::current_or_null(); if (t != NULL) { // If the thread has been attached this operation is a no-op *(JNIEnv**)penv = ((JavaThread*) t)->jni_environment(); @@ -4201,10 +4201,8 @@ // initializing the Java level thread object. Hence, the correct state must // be set in order for the Safepoint code to deal with it correctly. thread->set_thread_state(_thread_in_vm); - // Must do this before initialize_thread_local_storage thread->record_stack_base_and_size(); - - thread->initialize_thread_local_storage(); + thread->initialize_thread_current(); if (!os::create_attached_thread(thread)) { delete thread; @@ -4311,8 +4309,8 @@ JNIWrapper("DetachCurrentThread"); - // If the thread has been deattacted the operations is a no-op - if (ThreadLocalStorage::thread() == NULL) { + // If the thread has already been detached the operations is a no-op + if (Thread::current_or_null() == NULL) { HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN(JNI_OK); return JNI_OK; } @@ -4369,7 +4367,7 @@ #define JVMPI_VERSION_1_2 ((jint)0x10000003) #endif // !JVMPI_VERSION_1 - Thread* thread = ThreadLocalStorage::thread(); + Thread* thread = Thread::current_or_null(); if (thread != NULL && thread->is_Java_thread()) { if (Threads::is_supported_jni_version_including_1_1(version)) { *(JNIEnv**)penv = ((JavaThread*) thread)->jni_environment();