< prev index next >
test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp
Print this page
rev 52100 : 8212083: Handle remaining gc/lock native code and fix two strings
Summary:
Reviewed-by:
*** 21,30 ****
--- 21,31 ----
* questions.
*/
#include <jni.h>
#include <stdio.h>
#include <time.h>
+ #include "ExceptionCheckingJniEnv.hpp"
#include "jni_tools.h"
extern "C" {
static jfieldID objFieldId = NULL;
*** 33,67 ****
* Class: nsk_share_gc_lock_jni_LongArrayCriticalLocker
* Method: criticalNative
* Signature: ([Z)Z
*/
JNIEXPORT jlong JNICALL Java_nsk_share_gc_lock_jni_LongArrayCriticalLocker_criticalNative
! (JNIEnv *env, jobject o, jlong enterTime, jlong sleepTime) {
jsize size, i;
jlongArray arr;
jlong *pa;
jlong hash = 0;
time_t start_time, current_time;
if (objFieldId == NULL) {
jclass klass = env->GetObjectClass(o);
- if (klass == NULL) {
- printf("Error: GetObjectClass returned NULL\n");
- return 0;
- }
objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;");
- if (objFieldId == NULL) {
- printf("Error: GetFieldID returned NULL\n");
- return 0;
- }
}
arr = (jlongArray) env->GetObjectField(o, objFieldId);
- if (arr == NULL) {
- printf("Error: GetObjectField returned NULL\n");
- return JNI_FALSE;
- }
env->SetObjectField(o, objFieldId, NULL);
size = env->GetArrayLength(arr);
start_time = time(NULL);
enterTime /= 1000;
current_time = 0;
while (current_time - start_time < enterTime) {
--- 34,59 ----
* Class: nsk_share_gc_lock_jni_LongArrayCriticalLocker
* Method: criticalNative
* Signature: ([Z)Z
*/
JNIEXPORT jlong JNICALL Java_nsk_share_gc_lock_jni_LongArrayCriticalLocker_criticalNative
! (JNIEnv *jni_env, jobject o, jlong enterTime, jlong sleepTime) {
! ExceptionCheckingJniEnvPtr env(jni_env);
!
jsize size, i;
jlongArray arr;
jlong *pa;
jlong hash = 0;
time_t start_time, current_time;
if (objFieldId == NULL) {
jclass klass = env->GetObjectClass(o);
objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;");
}
arr = (jlongArray) env->GetObjectField(o, objFieldId);
env->SetObjectField(o, objFieldId, NULL);
+
size = env->GetArrayLength(arr);
start_time = time(NULL);
enterTime /= 1000;
current_time = 0;
while (current_time - start_time < enterTime) {
< prev index next >