< 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 >