< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIGlobalRefLocker.cpp

Print this page
rev 51961 : 8211291: Backout JDK-8210842 Handle JNIGlobalRefLocker.cpp

*** 18,33 **** * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ - #include <jni.h> #include <stdio.h> #include <time.h> #include "jni_tools.h" - #include "ExceptionCheckingJniEnv.hpp" extern "C" { static jfieldID objFieldId = NULL; --- 18,31 ----
*** 35,56 **** * Class: nsk_share_gc_lock_jniref_JNIGlobalRefLocker * Method: criticalNative * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_nsk_share_gc_lock_jniref_JNIGlobalRefLocker_criticalNative ! (JNIEnv *jni_env, jobject o, jlong enterTime, jlong sleepTime) { ! ExceptionCheckingJniEnvPtr env(jni_env); ! jobject obj; jobject gref; time_t start_time, current_time; if (objFieldId == NULL) { jclass klass = env->GetObjectClass(o); objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;"); } obj = env->GetObjectField(o, objFieldId); env->SetObjectField(o, objFieldId, NULL); start_time = time(NULL); enterTime /= 1000; current_time = 0; while (current_time - start_time < enterTime) { --- 33,64 ---- * Class: nsk_share_gc_lock_jniref_JNIGlobalRefLocker * Method: criticalNative * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_nsk_share_gc_lock_jniref_JNIGlobalRefLocker_criticalNative ! (JNIEnv *env, jobject o, jlong enterTime, jlong sleepTime) { jobject obj; jobject gref; time_t start_time, current_time; if (objFieldId == NULL) { jclass klass = env->GetObjectClass(o); + if (klass == NULL) { + printf("Error: GetObjectClass returned NULL\n"); + return; + } objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;"); + if (objFieldId == NULL) { + printf("Error: GetFieldID returned NULL\n"); + return; + } } obj = env->GetObjectField(o, objFieldId); + if (obj == NULL) { + printf("Error: GetObjectField returned NULL\n"); + return; + } env->SetObjectField(o, objFieldId, NULL); start_time = time(NULL); enterTime /= 1000; current_time = 0; while (current_time - start_time < enterTime) {
< prev index next >