Check for nullptr instead of JNI exception after using FindClass
When FindClass fails to find the specified class, it returns a
nullptr but does not always throw a JNI error/exception. This change
checks for nullptr instead of a JNI exception after using FindClass.
Bug: 112338190
Bug: 117498290
Test: atest CtsJvmtiRedefineClassesHostTestCases \
CtsJvmtiTaggingHostTestCases \
CtsJvmtiTrackingHostTestCases
Change-Id: Icde79b3812f877553dd085cfaa31f2b0969266c3
(cherry picked from commit 1cbfea0c428535b371d364d4f0aa92ece3c0f939)
Merged-In: Icde79b3812f877553dd085cfaa31f2b0969266c3
diff --git a/hostsidetests/jvmti/base/jni/redefine.cpp b/hostsidetests/jvmti/base/jni/redefine.cpp
index 003b909..7656fb3 100644
--- a/hostsidetests/jvmti/base/jni/redefine.cpp
+++ b/hostsidetests/jvmti/base/jni/redefine.cpp
@@ -196,7 +196,7 @@
void register_android_jvmti_cts_JvmtiRedefineClassesTest(jvmtiEnv* jenv, JNIEnv* env) {
ScopedLocalRef<jclass> klass(env, FindClass(jenv, env,
"android/jvmti/cts/JvmtiRedefineClassesTest", nullptr));
- if (env->ExceptionCheck()) {
+ if (klass.get() == nullptr) {
env->ExceptionClear();
return;
}
diff --git a/hostsidetests/jvmti/base/jni/tagging.cpp b/hostsidetests/jvmti/base/jni/tagging.cpp
index d2208f3..8ab4a10 100644
--- a/hostsidetests/jvmti/base/jni/tagging.cpp
+++ b/hostsidetests/jvmti/base/jni/tagging.cpp
@@ -138,7 +138,7 @@
void register_art_Main(jvmtiEnv* jenv, JNIEnv* env) {
ScopedLocalRef<jclass> klass(env, FindClass(jenv, env, "art/Main", nullptr));
- if (env->ExceptionCheck()) {
+ if (klass.get() == nullptr) {
env->ExceptionClear();
return;
}
@@ -159,7 +159,7 @@
void register_android_jvmti_cts_JvmtiTaggingTest(jvmtiEnv* jenv, JNIEnv* env) {
ScopedLocalRef<jclass> klass(env, FindClass(jenv, env,
"android/jvmti/cts/JvmtiTaggingTest", nullptr));
- if (env->ExceptionCheck()) {
+ if (klass.get() == nullptr) {
env->ExceptionClear();
return;
}
diff --git a/hostsidetests/jvmti/base/jni/tracking.cpp b/hostsidetests/jvmti/base/jni/tracking.cpp
index 0503e82..5ee6d57 100644
--- a/hostsidetests/jvmti/base/jni/tracking.cpp
+++ b/hostsidetests/jvmti/base/jni/tracking.cpp
@@ -108,7 +108,7 @@
void register_android_jvmti_cts_JvmtiTrackingTest(jvmtiEnv* jenv, JNIEnv* env) {
ScopedLocalRef<jclass> klass(env, FindClass(jenv, env,
"android/jvmti/cts/JvmtiTrackingTest", nullptr));
- if (env->ExceptionCheck()) {
+ if (klass.get() == nullptr) {
env->ExceptionClear();
return;
}