diff --git a/ddprof-lib/src/main/cpp/flightRecorder.cpp b/ddprof-lib/src/main/cpp/flightRecorder.cpp index 41e0674cae..3a2f633d61 100644 --- a/ddprof-lib/src/main/cpp/flightRecorder.cpp +++ b/ddprof-lib/src/main/cpp/flightRecorder.cpp @@ -254,20 +254,13 @@ void Lookup::fillJavaMethodInfo(MethodInfo *mi, jmethodID method, jclass Thread_class = jni->FindClass("java/lang/Thread"); jclass Class_class = jni->FindClass("java/lang/Class"); if (Thread_class != nullptr && Class_class != nullptr) { - jmethodID equals = jni->GetMethodID(Class_class, - "equals", "(Ljava/lang/Object;)Z"); - if (equals != nullptr) { - jclass klass = method_class; - do { - entry = jni->CallBooleanMethod(Thread_class, equals, klass); - if (jniExceptionCheck(jni)) { - entry = false; - break; - } - if (entry) { - break; - } - } while ((klass = jni->GetSuperclass(klass)) != NULL); + jmethodID isAssignableFrom = + jni->GetMethodID(Class_class, "isAssignableFrom", "(Ljava/lang/Class;)Z"); + if (isAssignableFrom != nullptr) { + entry = jni->CallBooleanMethod(Thread_class, isAssignableFrom, method_class); + if (jniExceptionCheck(jni)) { + entry = false; + } } } // Clear any exceptions from the reflection calls above