From 14999d0bc7d57d39afb46fb8094ce069e9a4f7d1 Mon Sep 17 00:00:00 2001 From: Joshua Castle <26531652+Kas-tle@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:03:15 -0700 Subject: [PATCH] Suppress stdout for failed to attach threads on jvm shutdown Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com> --- .../jni-voithos/include/JavaThreadEnv.h | 1 + .../jni-voithos/src/JavaThreadEnv.cpp | 23 ++++++++----------- webrtc-jni/src/main/cpp/src/rtc/LogSink.cpp | 4 ++++ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/webrtc-jni/src/main/cpp/dependencies/jni-voithos/include/JavaThreadEnv.h b/webrtc-jni/src/main/cpp/dependencies/jni-voithos/include/JavaThreadEnv.h index 9fcf7f68..009d0ed9 100644 --- a/webrtc-jni/src/main/cpp/dependencies/jni-voithos/include/JavaThreadEnv.h +++ b/webrtc-jni/src/main/cpp/dependencies/jni-voithos/include/JavaThreadEnv.h @@ -23,6 +23,7 @@ namespace jni private: JavaVM * vm; JNIEnv * env; + bool attached; }; } diff --git a/webrtc-jni/src/main/cpp/dependencies/jni-voithos/src/JavaThreadEnv.cpp b/webrtc-jni/src/main/cpp/dependencies/jni-voithos/src/JavaThreadEnv.cpp index ee197b00..de544be6 100644 --- a/webrtc-jni/src/main/cpp/dependencies/jni-voithos/src/JavaThreadEnv.cpp +++ b/webrtc-jni/src/main/cpp/dependencies/jni-voithos/src/JavaThreadEnv.cpp @@ -7,33 +7,30 @@ #include "JavaThreadEnv.h" -#include -#include - namespace jni { JavaThreadEnv::JavaThreadEnv(JavaVM * vm) : vm(vm), - env(nullptr) + env(nullptr), + attached(false) { int status = vm->GetEnv(reinterpret_cast(&env), JNI_VERSION_1_6); if (status == JNI_EDETACHED) { - if (vm->AttachCurrentThread(reinterpret_cast(&env), NULL) != 0) { - std::cout << "VM attach current thread failed" << std::endl; + if (vm->AttachCurrentThread(reinterpret_cast(&env), NULL) == JNI_OK) { + attached = true; + } + else { + env = nullptr; } - } - - if (env == nullptr) { - std::cout << "Failed to attach thread " << std::this_thread::get_id() << std::endl; } } JavaThreadEnv::~JavaThreadEnv() { - vm->DetachCurrentThread(); - - //std::cout << "Dettached thread " << std::this_thread::get_id() << std::endl; + if (attached) { + vm->DetachCurrentThread(); + } } JNIEnv * JavaThreadEnv::getEnv() const diff --git a/webrtc-jni/src/main/cpp/src/rtc/LogSink.cpp b/webrtc-jni/src/main/cpp/src/rtc/LogSink.cpp index f5b8ce35..16a5c088 100644 --- a/webrtc-jni/src/main/cpp/src/rtc/LogSink.cpp +++ b/webrtc-jni/src/main/cpp/src/rtc/LogSink.cpp @@ -35,6 +35,10 @@ namespace jni { JNIEnv * env = AttachCurrentThread(); + if (env == nullptr) { + return; + } + JavaLocalRef jSeverity = JavaEnums::toJava(env, severity); JavaLocalRef jMessage = JavaString::toJava(env, message);