< prev index next >
test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp
Print this page
rev 52432 : 8213501: Deploy ExceptionJniWrapper for a few tests
Summary:
Reviewed-by:
@@ -22,10 +22,11 @@
*/
#include <string.h>
#include "jvmti.h"
#include "agent_common.h"
+#include "ExceptionCheckingJniEnv.hpp"
#include "jni_tools.h"
#include "jvmti_tools.h"
extern "C" {
@@ -44,25 +45,26 @@
* Class: nsk_jvmti_scenarios_bcinstr_BI01_bi01t001
* Method: setNewByteCode
* Signature: ([B)Z
*/
JNIEXPORT jboolean JNICALL
-Java_nsk_jvmti_scenarios_bcinstr_BI01_bi01t001_setNewByteCode(JNIEnv *jni_env,
- jobject o, jbyteArray byteCode) {
-
+Java_nsk_jvmti_scenarios_bcinstr_BI01_bi01t001_setNewByteCode(JNIEnv *jni,
+ jobject o,
+ jbyteArray byteCode) {
+ ExceptionCheckingJniEnvPtr jni_env(jni);
jbyte* elements;
jboolean isCopy;
- newClassSize = jni_env->GetArrayLength(byteCode);
- if (!NSK_JNI_VERIFY(jni_env, newClassSize > 0)) {
+ newClassSize = jni_env->GetArrayLength(byteCode, TRACE_JNI_CALL);
+ if (newClassSize <= 0) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
NSK_DISPLAY1("\t... got array size: %d\n", newClassSize);
- elements = jni_env->GetByteArrayElements(byteCode, &isCopy);
- if (!NSK_JNI_VERIFY(jni_env, elements != NULL)) {
+ elements = jni_env->GetByteArrayElements(byteCode, &isCopy, TRACE_JNI_CALL);
+ if (elements == NULL) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
NSK_DISPLAY1("\t... got elements list: 0x%p\n", (void*)elements);
@@ -78,11 +80,11 @@
newClassBytes[j] = (unsigned char)elements[j];
}
NSK_DISPLAY1("\t... copied bytecode: %d bytes\n", (int)newClassSize);
NSK_DISPLAY1("\t... release elements list: 0x%p\n", (void*)elements);
- NSK_TRACE(jni_env->ReleaseByteArrayElements(byteCode, elements, JNI_ABORT));
+ jni_env->ReleaseByteArrayElements(byteCode, elements, JNI_ABORT, TRACE_JNI_CALL);
NSK_DISPLAY0("\t... released\n");
return NSK_TRUE;
}
/* ============================================================================= */
@@ -90,15 +92,15 @@
* Class: nsk_jvmti_scenarios_bcinstr_BI01_bi01t001
* Method: setClass
* Signature: (Ljava/lang/Class;)V
*/
JNIEXPORT void JNICALL
-Java_nsk_jvmti_scenarios_bcinstr_BI01_bi01t001_setClass(JNIEnv *jni_env,
+Java_nsk_jvmti_scenarios_bcinstr_BI01_bi01t001_setClass(JNIEnv *jni,
jobject o, jclass cls) {
-
- oldClassDef.klass = (jclass) jni_env->NewGlobalRef(cls);
- if (!NSK_JNI_VERIFY(jni_env, oldClassDef.klass != NULL)) {
+ ExceptionCheckingJniEnvPtr jni_env(jni);
+ oldClassDef.klass = (jclass) jni_env->NewGlobalRef(cls, TRACE_JNI_CALL);
+ if (oldClassDef.klass == NULL) {
nsk_jvmti_setFailStatus();
}
}
/* ============================================================================= */
@@ -152,10 +154,11 @@
/* ============================================================================= */
/** Agent algorithm. */
static void JNICALL
agentProc(jvmtiEnv* jvmti, JNIEnv* agentJNI, void* arg) {
+ ExceptionCheckingJniEnvPtr jni(agentJNI);
/*Wait for debuggee to read new byte codes nsk_jvmti_waitForSync#1*/
NSK_DISPLAY0("Wait for debuggee to read new byte codes nsk_jvmti_waitForSync#1\n");
if (!nsk_jvmti_waitForSync(timeout))
return;
@@ -212,11 +215,11 @@
/*Wait for debuggee to check old byte code works nsk_jvmti_waitForSync#5*/
NSK_DISPLAY0("Wait for debuggee to check old byte code works nsk_jvmti_waitForSync#5\n");
if (!nsk_jvmti_waitForSync(timeout))
return;
- agentJNI->DeleteGlobalRef(oldClassDef.klass);
+ jni->DeleteGlobalRef(oldClassDef.klass, TRACE_JNI_CALL);
NSK_DISPLAY0("Let debuggee to finish\n");
if (!nsk_jvmti_resumeSync())
return;
< prev index next >