github-actions[bot] commented on code in PR #43497:
URL: https://github.com/apache/doris/pull/43497#discussion_r1833786811
##########
be/src/util/jvm_metrics.cpp:
##########
@@ -189,257 +182,193 @@
}
}
-Status JvmStats::init(JNIEnv* env) {
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ManagementFactory",
- &_managementFactoryClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
-
"()Ljava/lang/management/MemoryMXBean;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryUsage",
- &_memoryUsageClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageUsedMethod, env,
- GetMethodID(_memoryUsageClass, "getUsed",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageCommittedMethod, env,
- GetMethodID(_memoryUsageClass,
"getCommitted", "()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageMaxMethod, env,
- GetMethodID(_memoryUsageClass, "getMax",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryMXBean",
- &_memoryMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getNonHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPoolMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass, "getMemoryPoolMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/util/List",
&_listClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListSizeMethod, env,
- GetMethodID(_listClass, "size", "()I"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListUseIndexMethod, env,
- GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryPoolMXBean",
- &_memoryPoolMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPoolMXBeanUsageMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPollMXBeanPeakMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPollMXBeanNameMethod, env,
- GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getThreadMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
-
"()Ljava/lang/management/ThreadMXBean;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGarbageCollectorMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getGarbageCollectorMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/GarbageCollectorMXBean",
- &_garbageCollectorMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCNameMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionCountMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionCount",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionTimeMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionTime",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ThreadMXBean",
- &_threadMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getAllThreadIdsMethod, env,
- GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getThreadInfoMethod, env,
- GetMethodID(_threadMXBeanClass,
"getThreadInfo",
-
"([JI)[Ljava/lang/management/ThreadInfo;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getPeakThreadCountMethod, env,
- GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I"));
-
- RETURN_IF_ERROR(
- JniUtil::GetGlobalClassRef(env, "java/lang/management/ThreadInfo",
&_threadInfoClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- ,
-
- _getThreadStateMethod, env,
- GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/lang/Thread$State",
&_threadStateClass));
+void JvmStats::init(JNIEnv* ENV) {
+ env = ENV;
+ _managementFactoryClass =
env->FindClass("java/lang/management/ManagementFactory");
+ if (_managementFactoryClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/ManagementFactory Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, newThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;"));
+ _getMemoryMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
+
"()Ljava/lang/management/MemoryMXBean;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, runnableThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;"));
+ _memoryUsageClass = env->FindClass("java/lang/management/MemoryUsage");
+ if (_memoryUsageClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryUsage Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryUsageUsedMethod = env->GetMethodID(_memoryUsageClass, "getUsed",
"()J");
+ _getMemoryUsageCommittedMethod = env->GetMethodID(_memoryUsageClass,
"getCommitted", "()J");
+ _getMemoryUsageMaxMethod = env->GetMethodID(_memoryUsageClass, "getMax",
"()J");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, blockedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, waitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;"));
+ _memoryMXBeanClass = env->FindClass("java/lang/management/MemoryMXBean");
+ if (_memoryMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getNonHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, timedWaitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, terminatedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;"));
+ _getMemoryPoolMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getMemoryPoolMXBeans",
"()Ljava/util/List;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, newThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
newThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, newThreadStateObj,
&_newThreadStateObj));
+ _listClass = env->FindClass("java/util/List");
+ if (_listClass == nullptr) {
+ LOG(WARNING) << "Class java/util/List Not Find.JVM monitoring fails.";
+ return;
+ }
+ _getListSizeMethod = env->GetMethodID(_listClass, "size", "()I");
+ _getListUseIndexMethod = env->GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, runnableThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
runnableThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, runnableThreadStateObj,
&_runnableThreadStateObj));
+ _memoryPoolMXBeanClass =
env->FindClass("java/lang/management/MemoryPoolMXBean");
+ if (_memoryPoolMXBeanClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/MemoryPoolMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryPoolMXBeanUsageMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanPeakMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanNameMethod =
+ env->GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;");
+
+ _getThreadMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
+
"()Ljava/lang/management/ThreadMXBean;");
+
+ _getGarbageCollectorMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getGarbageCollectorMXBeans",
"()Ljava/util/List;");
+
+ _garbageCollectorMXBeanClass =
env->FindClass("java/lang/management/GarbageCollectorMXBean");
+ if (_garbageCollectorMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/GarbageCollectorMXBean Not
Find.JVM monitoring "
+ "fails.";
+ return;
+ }
+ _getGCNameMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;");
+ _getGCCollectionCountMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionCount", "()J");
+ _getGCCollectionTimeMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionTime", "()J");
+
+ _threadMXBeanClass = env->FindClass("java/lang/management/ThreadMXBean");
+ if (_threadMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getAllThreadIdsMethod = env->GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J");
+ _getThreadInfoMethod = env->GetMethodID(_threadMXBeanClass,
"getThreadInfo",
+
"([JI)[Ljava/lang/management/ThreadInfo;");
+ _getPeakThreadCountMethod = env->GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I");
+
+ _threadInfoClass = env->FindClass("java/lang/management/ThreadInfo");
+ if (_threadInfoClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadInfo Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, blockedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
blockedThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, blockedThreadStateObj,
&_blockedThreadStateObj));
+ _getThreadStateMethod =
+ env->GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, waitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
waitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, waitingThreadStateObj,
&_waitingThreadStateObj));
+ _threadStateClass = env->FindClass("java/lang/Thread$State");
+ if (_threadStateClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/Thread$State Not Find.JVM monitoring
fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, timedWaitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, timedWaitingThreadStateObj,
- &_timedWaitingThreadStateObj));
+ jfieldID newThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;");
+ jfieldID runnableThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;");
+ jfieldID blockedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;");
+ jfieldID waitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID timedWaitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID terminatedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;");
+
+ _newThreadStateObj = env->GetStaticObjectField(_threadStateClass,
newThreadFieldID);
+ _runnableThreadStateObj = env->GetStaticObjectField(_threadStateClass,
runnableThreadFieldID);
+ _blockedThreadStateObj = env->GetStaticObjectField(_threadStateClass,
blockedThreadFieldID);
+ _waitingThreadStateObj = env->GetStaticObjectField(_threadStateClass,
waitingThreadFieldID);
+ _timedWaitingThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID);
+ _terminatedThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
terminatedThreadFieldID);
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, terminatedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass, terminatedThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, terminatedThreadStateObj,
&_terminatedThreadStateObj));
+ LOG(INFO) << "Start JVM monitoring.";
_init_complete = true;
-
- LOG(INFO) << "Start JVM monitoring.";
- return Status::OK();
+ return;
}
Review Comment:
warning: redundant return statement at the end of a function with a void
return type [readability-redundant-control-flow]
```suggestion
}
```
##########
be/src/util/jvm_metrics.cpp:
##########
@@ -189,257 +182,193 @@
}
}
-Status JvmStats::init(JNIEnv* env) {
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ManagementFactory",
- &_managementFactoryClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
-
"()Ljava/lang/management/MemoryMXBean;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryUsage",
- &_memoryUsageClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageUsedMethod, env,
- GetMethodID(_memoryUsageClass, "getUsed",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageCommittedMethod, env,
- GetMethodID(_memoryUsageClass,
"getCommitted", "()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageMaxMethod, env,
- GetMethodID(_memoryUsageClass, "getMax",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryMXBean",
- &_memoryMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getNonHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPoolMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass, "getMemoryPoolMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/util/List",
&_listClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListSizeMethod, env,
- GetMethodID(_listClass, "size", "()I"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListUseIndexMethod, env,
- GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryPoolMXBean",
- &_memoryPoolMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPoolMXBeanUsageMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPollMXBeanPeakMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPollMXBeanNameMethod, env,
- GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getThreadMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
-
"()Ljava/lang/management/ThreadMXBean;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGarbageCollectorMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getGarbageCollectorMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/GarbageCollectorMXBean",
- &_garbageCollectorMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCNameMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionCountMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionCount",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionTimeMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionTime",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ThreadMXBean",
- &_threadMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getAllThreadIdsMethod, env,
- GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getThreadInfoMethod, env,
- GetMethodID(_threadMXBeanClass,
"getThreadInfo",
-
"([JI)[Ljava/lang/management/ThreadInfo;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getPeakThreadCountMethod, env,
- GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I"));
-
- RETURN_IF_ERROR(
- JniUtil::GetGlobalClassRef(env, "java/lang/management/ThreadInfo",
&_threadInfoClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- ,
-
- _getThreadStateMethod, env,
- GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/lang/Thread$State",
&_threadStateClass));
+void JvmStats::init(JNIEnv* ENV) {
+ env = ENV;
+ _managementFactoryClass =
env->FindClass("java/lang/management/ManagementFactory");
+ if (_managementFactoryClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/ManagementFactory Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, newThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;"));
+ _getMemoryMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
+
"()Ljava/lang/management/MemoryMXBean;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, runnableThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;"));
+ _memoryUsageClass = env->FindClass("java/lang/management/MemoryUsage");
+ if (_memoryUsageClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryUsage Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryUsageUsedMethod = env->GetMethodID(_memoryUsageClass, "getUsed",
"()J");
+ _getMemoryUsageCommittedMethod = env->GetMethodID(_memoryUsageClass,
"getCommitted", "()J");
+ _getMemoryUsageMaxMethod = env->GetMethodID(_memoryUsageClass, "getMax",
"()J");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, blockedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, waitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;"));
+ _memoryMXBeanClass = env->FindClass("java/lang/management/MemoryMXBean");
+ if (_memoryMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getNonHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, timedWaitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, terminatedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;"));
+ _getMemoryPoolMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getMemoryPoolMXBeans",
"()Ljava/util/List;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, newThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
newThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, newThreadStateObj,
&_newThreadStateObj));
+ _listClass = env->FindClass("java/util/List");
+ if (_listClass == nullptr) {
+ LOG(WARNING) << "Class java/util/List Not Find.JVM monitoring fails.";
+ return;
+ }
+ _getListSizeMethod = env->GetMethodID(_listClass, "size", "()I");
+ _getListUseIndexMethod = env->GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, runnableThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
runnableThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, runnableThreadStateObj,
&_runnableThreadStateObj));
+ _memoryPoolMXBeanClass =
env->FindClass("java/lang/management/MemoryPoolMXBean");
+ if (_memoryPoolMXBeanClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/MemoryPoolMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryPoolMXBeanUsageMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanPeakMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanNameMethod =
+ env->GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;");
+
+ _getThreadMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
+
"()Ljava/lang/management/ThreadMXBean;");
+
+ _getGarbageCollectorMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getGarbageCollectorMXBeans",
"()Ljava/util/List;");
+
+ _garbageCollectorMXBeanClass =
env->FindClass("java/lang/management/GarbageCollectorMXBean");
+ if (_garbageCollectorMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/GarbageCollectorMXBean Not
Find.JVM monitoring "
+ "fails.";
+ return;
+ }
+ _getGCNameMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;");
+ _getGCCollectionCountMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionCount", "()J");
+ _getGCCollectionTimeMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionTime", "()J");
+
+ _threadMXBeanClass = env->FindClass("java/lang/management/ThreadMXBean");
+ if (_threadMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getAllThreadIdsMethod = env->GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J");
+ _getThreadInfoMethod = env->GetMethodID(_threadMXBeanClass,
"getThreadInfo",
+
"([JI)[Ljava/lang/management/ThreadInfo;");
+ _getPeakThreadCountMethod = env->GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I");
+
+ _threadInfoClass = env->FindClass("java/lang/management/ThreadInfo");
+ if (_threadInfoClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadInfo Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, blockedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
blockedThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, blockedThreadStateObj,
&_blockedThreadStateObj));
+ _getThreadStateMethod =
+ env->GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, waitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
waitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, waitingThreadStateObj,
&_waitingThreadStateObj));
+ _threadStateClass = env->FindClass("java/lang/Thread$State");
+ if (_threadStateClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/Thread$State Not Find.JVM monitoring
fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, timedWaitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, timedWaitingThreadStateObj,
- &_timedWaitingThreadStateObj));
+ jfieldID newThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;");
+ jfieldID runnableThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;");
+ jfieldID blockedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;");
+ jfieldID waitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID timedWaitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID terminatedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;");
+
+ _newThreadStateObj = env->GetStaticObjectField(_threadStateClass,
newThreadFieldID);
+ _runnableThreadStateObj = env->GetStaticObjectField(_threadStateClass,
runnableThreadFieldID);
+ _blockedThreadStateObj = env->GetStaticObjectField(_threadStateClass,
blockedThreadFieldID);
+ _waitingThreadStateObj = env->GetStaticObjectField(_threadStateClass,
waitingThreadFieldID);
+ _timedWaitingThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID);
+ _terminatedThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
terminatedThreadFieldID);
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, terminatedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass, terminatedThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, terminatedThreadStateObj,
&_terminatedThreadStateObj));
+ LOG(INFO) << "Start JVM monitoring.";
_init_complete = true;
-
- LOG(INFO) << "Start JVM monitoring.";
- return Status::OK();
+ return;
}
-Status JvmStats::refresh(JvmMetrics* jvm_metrics) const {
+void JvmStats::refresh(JvmMetrics* jvm_metrics) {
Review Comment:
warning: method 'refresh' can be made const
[readability-make-member-function-const]
be/src/util/jvm_metrics.h:102:
```diff
- void refresh(JvmMetrics* jvm_metrics);
+ void refresh(JvmMetrics* jvm_metrics) const;
```
```suggestion
void JvmStats::refresh(JvmMetrics* jvm_metrics) const {
```
##########
be/src/util/jvm_metrics.cpp:
##########
@@ -189,257 +182,193 @@ void JvmMetrics::update() {
}
}
-Status JvmStats::init(JNIEnv* env) {
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ManagementFactory",
- &_managementFactoryClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
-
"()Ljava/lang/management/MemoryMXBean;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryUsage",
- &_memoryUsageClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageUsedMethod, env,
- GetMethodID(_memoryUsageClass, "getUsed",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageCommittedMethod, env,
- GetMethodID(_memoryUsageClass,
"getCommitted", "()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageMaxMethod, env,
- GetMethodID(_memoryUsageClass, "getMax",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryMXBean",
- &_memoryMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getNonHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPoolMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass, "getMemoryPoolMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/util/List",
&_listClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListSizeMethod, env,
- GetMethodID(_listClass, "size", "()I"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListUseIndexMethod, env,
- GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryPoolMXBean",
- &_memoryPoolMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPoolMXBeanUsageMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPollMXBeanPeakMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPollMXBeanNameMethod, env,
- GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getThreadMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
-
"()Ljava/lang/management/ThreadMXBean;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGarbageCollectorMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getGarbageCollectorMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/GarbageCollectorMXBean",
- &_garbageCollectorMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCNameMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionCountMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionCount",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionTimeMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionTime",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ThreadMXBean",
- &_threadMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getAllThreadIdsMethod, env,
- GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getThreadInfoMethod, env,
- GetMethodID(_threadMXBeanClass,
"getThreadInfo",
-
"([JI)[Ljava/lang/management/ThreadInfo;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getPeakThreadCountMethod, env,
- GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I"));
-
- RETURN_IF_ERROR(
- JniUtil::GetGlobalClassRef(env, "java/lang/management/ThreadInfo",
&_threadInfoClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- ,
-
- _getThreadStateMethod, env,
- GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/lang/Thread$State",
&_threadStateClass));
+void JvmStats::init(JNIEnv* ENV) {
Review Comment:
warning: function 'init' exceeds recommended size/complexity thresholds
[readability-function-size]
```cpp
void JvmStats::init(JNIEnv* ENV) {
^
```
<details>
<summary>Additional context</summary>
**be/src/util/jvm_metrics.cpp:184:** 125 lines including whitespace and
comments (threshold 80)
```cpp
void JvmStats::init(JNIEnv* ENV) {
^
```
</details>
##########
be/src/util/jvm_metrics.cpp:
##########
@@ -189,257 +182,193 @@
}
}
-Status JvmStats::init(JNIEnv* env) {
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ManagementFactory",
- &_managementFactoryClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
-
"()Ljava/lang/management/MemoryMXBean;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryUsage",
- &_memoryUsageClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageUsedMethod, env,
- GetMethodID(_memoryUsageClass, "getUsed",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageCommittedMethod, env,
- GetMethodID(_memoryUsageClass,
"getCommitted", "()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageMaxMethod, env,
- GetMethodID(_memoryUsageClass, "getMax",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryMXBean",
- &_memoryMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getNonHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPoolMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass, "getMemoryPoolMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/util/List",
&_listClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListSizeMethod, env,
- GetMethodID(_listClass, "size", "()I"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListUseIndexMethod, env,
- GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryPoolMXBean",
- &_memoryPoolMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPoolMXBeanUsageMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPollMXBeanPeakMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPollMXBeanNameMethod, env,
- GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getThreadMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
-
"()Ljava/lang/management/ThreadMXBean;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGarbageCollectorMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getGarbageCollectorMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/GarbageCollectorMXBean",
- &_garbageCollectorMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCNameMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionCountMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionCount",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionTimeMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionTime",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ThreadMXBean",
- &_threadMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getAllThreadIdsMethod, env,
- GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getThreadInfoMethod, env,
- GetMethodID(_threadMXBeanClass,
"getThreadInfo",
-
"([JI)[Ljava/lang/management/ThreadInfo;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getPeakThreadCountMethod, env,
- GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I"));
-
- RETURN_IF_ERROR(
- JniUtil::GetGlobalClassRef(env, "java/lang/management/ThreadInfo",
&_threadInfoClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- ,
-
- _getThreadStateMethod, env,
- GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/lang/Thread$State",
&_threadStateClass));
+void JvmStats::init(JNIEnv* ENV) {
+ env = ENV;
+ _managementFactoryClass =
env->FindClass("java/lang/management/ManagementFactory");
+ if (_managementFactoryClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/ManagementFactory Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, newThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;"));
+ _getMemoryMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
+
"()Ljava/lang/management/MemoryMXBean;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, runnableThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;"));
+ _memoryUsageClass = env->FindClass("java/lang/management/MemoryUsage");
+ if (_memoryUsageClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryUsage Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryUsageUsedMethod = env->GetMethodID(_memoryUsageClass, "getUsed",
"()J");
+ _getMemoryUsageCommittedMethod = env->GetMethodID(_memoryUsageClass,
"getCommitted", "()J");
+ _getMemoryUsageMaxMethod = env->GetMethodID(_memoryUsageClass, "getMax",
"()J");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, blockedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, waitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;"));
+ _memoryMXBeanClass = env->FindClass("java/lang/management/MemoryMXBean");
+ if (_memoryMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getNonHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, timedWaitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, terminatedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;"));
+ _getMemoryPoolMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getMemoryPoolMXBeans",
"()Ljava/util/List;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, newThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
newThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, newThreadStateObj,
&_newThreadStateObj));
+ _listClass = env->FindClass("java/util/List");
+ if (_listClass == nullptr) {
+ LOG(WARNING) << "Class java/util/List Not Find.JVM monitoring fails.";
+ return;
+ }
+ _getListSizeMethod = env->GetMethodID(_listClass, "size", "()I");
+ _getListUseIndexMethod = env->GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, runnableThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
runnableThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, runnableThreadStateObj,
&_runnableThreadStateObj));
+ _memoryPoolMXBeanClass =
env->FindClass("java/lang/management/MemoryPoolMXBean");
+ if (_memoryPoolMXBeanClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/MemoryPoolMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryPoolMXBeanUsageMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanPeakMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanNameMethod =
+ env->GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;");
+
+ _getThreadMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
+
"()Ljava/lang/management/ThreadMXBean;");
+
+ _getGarbageCollectorMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getGarbageCollectorMXBeans",
"()Ljava/util/List;");
+
+ _garbageCollectorMXBeanClass =
env->FindClass("java/lang/management/GarbageCollectorMXBean");
+ if (_garbageCollectorMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/GarbageCollectorMXBean Not
Find.JVM monitoring "
+ "fails.";
+ return;
+ }
+ _getGCNameMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;");
+ _getGCCollectionCountMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionCount", "()J");
+ _getGCCollectionTimeMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionTime", "()J");
+
+ _threadMXBeanClass = env->FindClass("java/lang/management/ThreadMXBean");
+ if (_threadMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getAllThreadIdsMethod = env->GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J");
+ _getThreadInfoMethod = env->GetMethodID(_threadMXBeanClass,
"getThreadInfo",
+
"([JI)[Ljava/lang/management/ThreadInfo;");
+ _getPeakThreadCountMethod = env->GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I");
+
+ _threadInfoClass = env->FindClass("java/lang/management/ThreadInfo");
+ if (_threadInfoClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadInfo Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, blockedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
blockedThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, blockedThreadStateObj,
&_blockedThreadStateObj));
+ _getThreadStateMethod =
+ env->GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, waitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
waitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, waitingThreadStateObj,
&_waitingThreadStateObj));
+ _threadStateClass = env->FindClass("java/lang/Thread$State");
+ if (_threadStateClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/Thread$State Not Find.JVM monitoring
fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, timedWaitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, timedWaitingThreadStateObj,
- &_timedWaitingThreadStateObj));
+ jfieldID newThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;");
+ jfieldID runnableThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;");
+ jfieldID blockedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;");
+ jfieldID waitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID timedWaitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID terminatedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;");
+
+ _newThreadStateObj = env->GetStaticObjectField(_threadStateClass,
newThreadFieldID);
+ _runnableThreadStateObj = env->GetStaticObjectField(_threadStateClass,
runnableThreadFieldID);
+ _blockedThreadStateObj = env->GetStaticObjectField(_threadStateClass,
blockedThreadFieldID);
+ _waitingThreadStateObj = env->GetStaticObjectField(_threadStateClass,
waitingThreadFieldID);
+ _timedWaitingThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID);
+ _terminatedThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
terminatedThreadFieldID);
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, terminatedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass, terminatedThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, terminatedThreadStateObj,
&_terminatedThreadStateObj));
+ LOG(INFO) << "Start JVM monitoring.";
_init_complete = true;
-
- LOG(INFO) << "Start JVM monitoring.";
- return Status::OK();
+ return;
}
-Status JvmStats::refresh(JvmMetrics* jvm_metrics) const {
+void JvmStats::refresh(JvmMetrics* jvm_metrics) {
Review Comment:
warning: function 'refresh' exceeds recommended size/complexity thresholds
[readability-function-size]
```cpp
void JvmStats::refresh(JvmMetrics* jvm_metrics) {
^
```
<details>
<summary>Additional context</summary>
**be/src/util/jvm_metrics.cpp:311:** 164 lines including whitespace and
comments (threshold 80)
```cpp
void JvmStats::refresh(JvmMetrics* jvm_metrics) {
^
```
</details>
##########
be/src/util/jvm_metrics.cpp:
##########
@@ -189,257 +182,193 @@
}
}
-Status JvmStats::init(JNIEnv* env) {
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ManagementFactory",
- &_managementFactoryClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
-
"()Ljava/lang/management/MemoryMXBean;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryUsage",
- &_memoryUsageClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageUsedMethod, env,
- GetMethodID(_memoryUsageClass, "getUsed",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageCommittedMethod, env,
- GetMethodID(_memoryUsageClass,
"getCommitted", "()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryUsageMaxMethod, env,
- GetMethodID(_memoryUsageClass, "getMax",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryMXBean",
- &_memoryMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getNonHeapMemoryUsageMethod, env,
- GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPoolMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass, "getMemoryPoolMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/util/List",
&_listClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListSizeMethod, env,
- GetMethodID(_listClass, "size", "()I"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getListUseIndexMethod, env,
- GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/MemoryPoolMXBean",
- &_memoryPoolMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPoolMXBeanUsageMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getMemoryPollMXBeanPeakMethod, env,
- GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
-
"()Ljava/lang/management/MemoryUsage;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getMemoryPollMXBeanNameMethod, env,
- GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(, _getThreadMXBeanMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
-
"()Ljava/lang/management/ThreadMXBean;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGarbageCollectorMXBeansMethod, env,
- GetStaticMethodID(_managementFactoryClass,
"getGarbageCollectorMXBeans",
- "()Ljava/util/List;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/GarbageCollectorMXBean",
- &_garbageCollectorMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCNameMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionCountMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionCount",
"()J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- , _getGCCollectionTimeMethod, env,
- GetMethodID(_garbageCollectorMXBeanClass, "getCollectionTime",
"()J"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env,
"java/lang/management/ThreadMXBean",
- &_threadMXBeanClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getAllThreadIdsMethod, env,
- GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getThreadInfoMethod, env,
- GetMethodID(_threadMXBeanClass,
"getThreadInfo",
-
"([JI)[Ljava/lang/management/ThreadInfo;"));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(,
-
- _getPeakThreadCountMethod, env,
- GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I"));
-
- RETURN_IF_ERROR(
- JniUtil::GetGlobalClassRef(env, "java/lang/management/ThreadInfo",
&_threadInfoClass));
-
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- ,
-
- _getThreadStateMethod, env,
- GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;"));
-
- RETURN_IF_ERROR(JniUtil::GetGlobalClassRef(env, "java/lang/Thread$State",
&_threadStateClass));
+void JvmStats::init(JNIEnv* ENV) {
+ env = ENV;
+ _managementFactoryClass =
env->FindClass("java/lang/management/ManagementFactory");
+ if (_managementFactoryClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/ManagementFactory Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, newThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;"));
+ _getMemoryMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getMemoryMXBean",
+
"()Ljava/lang/management/MemoryMXBean;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, runnableThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;"));
+ _memoryUsageClass = env->FindClass("java/lang/management/MemoryUsage");
+ if (_memoryUsageClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryUsage Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryUsageUsedMethod = env->GetMethodID(_memoryUsageClass, "getUsed",
"()J");
+ _getMemoryUsageCommittedMethod = env->GetMethodID(_memoryUsageClass,
"getCommitted", "()J");
+ _getMemoryUsageMaxMethod = env->GetMethodID(_memoryUsageClass, "getMax",
"()J");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, blockedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, waitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;"));
+ _memoryMXBeanClass = env->FindClass("java/lang/management/MemoryMXBean");
+ if (_memoryMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/MemoryMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getNonHeapMemoryUsageMethod = env->GetMethodID(_memoryMXBeanClass,
"getNonHeapMemoryUsage",
+
"()Ljava/lang/management/MemoryUsage;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, timedWaitingThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;"));
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jfieldID, terminatedThreadFieldID, env,
- GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;"));
+ _getMemoryPoolMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getMemoryPoolMXBeans",
"()Ljava/util/List;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, newThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
newThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, newThreadStateObj,
&_newThreadStateObj));
+ _listClass = env->FindClass("java/util/List");
+ if (_listClass == nullptr) {
+ LOG(WARNING) << "Class java/util/List Not Find.JVM monitoring fails.";
+ return;
+ }
+ _getListSizeMethod = env->GetMethodID(_listClass, "size", "()I");
+ _getListUseIndexMethod = env->GetMethodID(_listClass, "get",
"(I)Ljava/lang/Object;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, runnableThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
runnableThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, runnableThreadStateObj,
&_runnableThreadStateObj));
+ _memoryPoolMXBeanClass =
env->FindClass("java/lang/management/MemoryPoolMXBean");
+ if (_memoryPoolMXBeanClass == nullptr) {
+ LOG(WARNING)
+ << "Class java/lang/management/MemoryPoolMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getMemoryPoolMXBeanUsageMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanPeakMethod = env->GetMethodID(_memoryPoolMXBeanClass,
"getPeakUsage",
+
"()Ljava/lang/management/MemoryUsage;");
+ _getMemoryPollMXBeanNameMethod =
+ env->GetMethodID(_memoryPoolMXBeanClass, "getName",
"()Ljava/lang/String;");
+
+ _getThreadMXBeanMethod = env->GetStaticMethodID(_managementFactoryClass,
"getThreadMXBean",
+
"()Ljava/lang/management/ThreadMXBean;");
+
+ _getGarbageCollectorMXBeansMethod = env->GetStaticMethodID(
+ _managementFactoryClass, "getGarbageCollectorMXBeans",
"()Ljava/util/List;");
+
+ _garbageCollectorMXBeanClass =
env->FindClass("java/lang/management/GarbageCollectorMXBean");
+ if (_garbageCollectorMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/GarbageCollectorMXBean Not
Find.JVM monitoring "
+ "fails.";
+ return;
+ }
+ _getGCNameMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass, "getName",
"()Ljava/lang/String;");
+ _getGCCollectionCountMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionCount", "()J");
+ _getGCCollectionTimeMethod =
+ env->GetMethodID(_garbageCollectorMXBeanClass,
"getCollectionTime", "()J");
+
+ _threadMXBeanClass = env->FindClass("java/lang/management/ThreadMXBean");
+ if (_threadMXBeanClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadMXBean Not Find.JVM
monitoring fails.";
+ return;
+ }
+ _getAllThreadIdsMethod = env->GetMethodID(_threadMXBeanClass,
"getAllThreadIds", "()[J");
+ _getThreadInfoMethod = env->GetMethodID(_threadMXBeanClass,
"getThreadInfo",
+
"([JI)[Ljava/lang/management/ThreadInfo;");
+ _getPeakThreadCountMethod = env->GetMethodID(_threadMXBeanClass,
"getPeakThreadCount", "()I");
+
+ _threadInfoClass = env->FindClass("java/lang/management/ThreadInfo");
+ if (_threadInfoClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/management/ThreadInfo Not Find.JVM
monitoring fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, blockedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
blockedThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, blockedThreadStateObj,
&_blockedThreadStateObj));
+ _getThreadStateMethod =
+ env->GetMethodID(_threadInfoClass, "getThreadState",
"()Ljava/lang/Thread$State;");
- JNI_CALL_METHOD_CHECK_EXCEPTION(jobject, waitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
waitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, waitingThreadStateObj,
&_waitingThreadStateObj));
+ _threadStateClass = env->FindClass("java/lang/Thread$State");
+ if (_threadStateClass == nullptr) {
+ LOG(WARNING) << "Class java/lang/Thread$State Not Find.JVM monitoring
fails.";
+ return;
+ }
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, timedWaitingThreadStateObj, env,
- GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID));
- RETURN_IF_ERROR(JniUtil::LocalToGlobalRef(env, timedWaitingThreadStateObj,
- &_timedWaitingThreadStateObj));
+ jfieldID newThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "NEW",
"Ljava/lang/Thread$State;");
+ jfieldID runnableThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "RUNNABLE",
"Ljava/lang/Thread$State;");
+ jfieldID blockedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "BLOCKED",
"Ljava/lang/Thread$State;");
+ jfieldID waitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID timedWaitingThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TIMED_WAITING",
"Ljava/lang/Thread$State;");
+ jfieldID terminatedThreadFieldID =
+ env->GetStaticFieldID(_threadStateClass, "TERMINATED",
"Ljava/lang/Thread$State;");
+
+ _newThreadStateObj = env->GetStaticObjectField(_threadStateClass,
newThreadFieldID);
+ _runnableThreadStateObj = env->GetStaticObjectField(_threadStateClass,
runnableThreadFieldID);
+ _blockedThreadStateObj = env->GetStaticObjectField(_threadStateClass,
blockedThreadFieldID);
+ _waitingThreadStateObj = env->GetStaticObjectField(_threadStateClass,
waitingThreadFieldID);
+ _timedWaitingThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
timedWaitingThreadFieldID);
+ _terminatedThreadStateObj =
+ env->GetStaticObjectField(_threadStateClass,
terminatedThreadFieldID);
- JNI_CALL_METHOD_CHECK_EXCEPTION(
- jobject, terminatedThreadStateObj, env,
- GetStaticObjectField(_threadStateClass, terminatedThreadFieldID));
- RETURN_IF_ERROR(
- JniUtil::LocalToGlobalRef(env, terminatedThreadStateObj,
&_terminatedThreadStateObj));
+ LOG(INFO) << "Start JVM monitoring.";
_init_complete = true;
-
- LOG(INFO) << "Start JVM monitoring.";
- return Status::OK();
+ return;
}
-Status JvmStats::refresh(JvmMetrics* jvm_metrics) const {
+void JvmStats::refresh(JvmMetrics* jvm_metrics) {
Review Comment:
warning: function 'refresh' has cognitive complexity of 66 (threshold 50)
[readability-function-cognitive-complexity]
```cpp
void JvmStats::refresh(JvmMetrics* jvm_metrics) {
^
```
<details>
<summary>Additional context</summary>
**be/src/util/jvm_metrics.cpp:312:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
if (!_init_complete) {
^
```
**be/src/util/jvm_metrics.cpp:317:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
if (!st.ok()) {
^
```
**be/src/util/jvm_metrics.cpp:332:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_heap_size_bytes_used->set_value(heapMemoryUsed < 0 ? 0
: heapMemoryUsed);
^
```
**be/src/util/jvm_metrics.cpp:334:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
heapMemoryCommitted < 0 ? 0 : heapMemoryCommitted);
^
```
**be/src/util/jvm_metrics.cpp:335:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_heap_size_bytes_max->set_value(heapMemoryMax < 0 ? 0 :
heapMemoryMax);
^
```
**be/src/util/jvm_metrics.cpp:345:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
nonHeapMemoryCommitted < 0 ? 0 : nonHeapMemoryCommitted);
^
```
**be/src/util/jvm_metrics.cpp:346:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_non_heap_size_bytes_used->set_value(nonHeapMemoryUsed <
0 ? 0
^
```
**be/src/util/jvm_metrics.cpp:354:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
for (int i = 0; i < size; ++i) {
^
```
**be/src/util/jvm_metrics.cpp:371:** +2, including nesting penalty of 1,
nesting level increased to 2
```cpp
if (nameStr != nullptr) {
^
```
**be/src/util/jvm_metrics.cpp:373:** +3, including nesting penalty of 2,
nesting level increased to 3
```cpp
if (it == _memoryPoolName.end()) {
^
```
**be/src/util/jvm_metrics.cpp:376:** +3, including nesting penalty of 2,
nesting level increased to 3
```cpp
if (it->second == memoryPoolNameEnum::YOUNG) {
^
```
**be/src/util/jvm_metrics.cpp:377:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_young_size_bytes_used->set_value(used < 0 ?
0 : used);
^
```
**be/src/util/jvm_metrics.cpp:378:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_young_size_bytes_peak_used->set_value(peakUsed < 0 ? 0 :
peakUsed);
^
```
**be/src/util/jvm_metrics.cpp:379:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_young_size_bytes_max->set_value(max < 0 ? 0
: max);
^
```
**be/src/util/jvm_metrics.cpp:381:** +1, nesting level increased to 3
```cpp
} else if (it->second == memoryPoolNameEnum::OLD) {
^
```
**be/src/util/jvm_metrics.cpp:382:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_old_size_bytes_used->set_value(used < 0 ? 0
: used);
^
```
**be/src/util/jvm_metrics.cpp:383:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_old_size_bytes_peak_used->set_value(peakUsed < 0 ? 0 :
peakUsed);
^
```
**be/src/util/jvm_metrics.cpp:384:** +4, including nesting penalty of 3,
nesting level increased to 4
```cpp
jvm_metrics->jvm_old_size_bytes_max->set_value(max < 0 ? 0 :
max);
^
```
**be/src/util/jvm_metrics.cpp:407:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_peak_count->set_value(peakThreadCount < 0 ? 0 :
peakThreadCount);
^
```
**be/src/util/jvm_metrics.cpp:408:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_count->set_value(threadCount < 0 ? 0 :
threadCount);
^
```
**be/src/util/jvm_metrics.cpp:410:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
for (int i = 0; i < threadCount; i++) {
^
```
**be/src/util/jvm_metrics.cpp:412:** +2, including nesting penalty of 1,
nesting level increased to 2
```cpp
if (threadInfo == nullptr) {
^
```
**be/src/util/jvm_metrics.cpp:417:** +2, including nesting penalty of 1,
nesting level increased to 2
```cpp
if (env->IsSameObject(threadState, _newThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:419:** +1, nesting level increased to 2
```cpp
} else if (env->IsSameObject(threadState, _runnableThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:421:** +1, nesting level increased to 2
```cpp
} else if (env->IsSameObject(threadState, _blockedThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:423:** +1, nesting level increased to 2
```cpp
} else if (env->IsSameObject(threadState, _waitingThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:425:** +1, nesting level increased to 2
```cpp
} else if (env->IsSameObject(threadState,
_timedWaitingThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:427:** +1, nesting level increased to 2
```cpp
} else if (env->IsSameObject(threadState,
_terminatedThreadStateObj)) {
^
```
**be/src/util/jvm_metrics.cpp:434:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_new_count->set_value(threadsNew < 0 ? 0 :
threadsNew);
^
```
**be/src/util/jvm_metrics.cpp:435:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_runnable_count->set_value(threadsRunnable < 0 ?
0 : threadsRunnable);
^
```
**be/src/util/jvm_metrics.cpp:436:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_blocked_count->set_value(threadsBlocked < 0 ? 0
: threadsBlocked);
^
```
**be/src/util/jvm_metrics.cpp:437:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_waiting_count->set_value(threadsWaiting < 0 ? 0
: threadsWaiting);
^
```
**be/src/util/jvm_metrics.cpp:439:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
threadsTimedWaiting < 0 ? 0 : threadsTimedWaiting);
^
```
**be/src/util/jvm_metrics.cpp:440:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
jvm_metrics->jvm_thread_terminated_count->set_value(threadsTerminated <
0 ? 0
^
```
**be/src/util/jvm_metrics.cpp:448:** +1, including nesting penalty of 0,
nesting level increased to 1
```cpp
for (int i = 0; i < numCollectors; i++) {
^
```
**be/src/util/jvm_metrics.cpp:455:** +2, including nesting penalty of 1,
nesting level increased to 2
```cpp
if (gcNameStr != nullptr) {
^
```
**be/src/util/jvm_metrics.cpp:456:** +3, including nesting penalty of 2,
nesting level increased to 3
```cpp
if (strcmp(gcNameStr, "G1 Young Generation") == 0) {
^
```
**be/src/util/jvm_metrics.cpp:460:** +1, nesting level increased to 3
```cpp
} else {
^
```
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]