diff --git a/core/jni/android_app_admin_SecurityLog.cpp b/core/jni/android_app_admin_SecurityLog.cpp index 5c45b4b26a1bd..9dfb4e0ed4072 100644 --- a/core/jni/android_app_admin_SecurityLog.cpp +++ b/core/jni/android_app_admin_SecurityLog.cpp @@ -186,6 +186,9 @@ static void readEvents(JNIEnv* env, int loggerMode, jlong startTime, jobject out env->CallBooleanMethod(out, gCollectionAddID, event); env->DeleteLocalRef(event); env->DeleteLocalRef(array); + if (env->ExceptionCheck() == JNI_TRUE) { + break; + } } android_logger_list_close(logger_list); diff --git a/core/jni/android_util_EventLog.cpp b/core/jni/android_util_EventLog.cpp index 9fd7c40410586..76ce30779ced0 100644 --- a/core/jni/android_util_EventLog.cpp +++ b/core/jni/android_util_EventLog.cpp @@ -215,6 +215,9 @@ static void readEvents(JNIEnv* env, int loggerMode, jintArray tags, jlong startT env->CallBooleanMethod(out, gCollectionAddID, event); env->DeleteLocalRef(event); env->DeleteLocalRef(array); + if (env->ExceptionCheck() == JNI_TRUE) { + break; + } } }