Skip to content

Commit c05e283

Browse files
authored
fix: improve reThrowToJava exception handling and runtime retrieval logic (#1886)
1 parent a4931b1 commit c05e283

File tree

4 files changed

+613
-550
lines changed

4 files changed

+613
-550
lines changed

test-app/runtime/src/main/cpp/NativeScriptException.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ void NativeScriptException::ReThrowToJava() {
7575

7676

7777
if (!m_javaException.IsNull()) {
78-
auto objectManager = Runtime::GetObjectManager(isolate);
79-
auto excClassName = objectManager->GetClassName((jobject) m_javaException);
78+
auto excClassName = ObjectManager::GetClassName((jobject) m_javaException);
8079
if (excClassName == "com/tns/NativeScriptException") {
8180
ex = m_javaException;
8281
} else {
@@ -103,8 +102,7 @@ void NativeScriptException::ReThrowToJava() {
103102
if (ex == nullptr) {
104103
ex = static_cast<jthrowable>(env.NewObject(NATIVESCRIPTEXCEPTION_CLASS, NATIVESCRIPTEXCEPTION_JSVALUE_CTOR_ID, (jstring) msg, (jstring)stackTrace, reinterpret_cast<jlong>(m_javascriptException)));
105104
} else {
106-
auto objectManager = Runtime::GetObjectManager(isolate);
107-
auto excClassName = objectManager->GetClassName(ex);
105+
auto excClassName = ObjectManager::GetClassName(ex);
108106
if (excClassName != "com/tns/NativeScriptException") {
109107
ex = static_cast<jthrowable>(env.NewObject(NATIVESCRIPTEXCEPTION_CLASS, NATIVESCRIPTEXCEPTION_THROWABLE_CTOR_ID, (jstring) msg, (jstring)stackTrace, ex));
110108
}
@@ -184,9 +182,8 @@ Local<Value> NativeScriptException::WrapJavaToJsException() {
184182
JEnv env;
185183

186184
auto isolate = Isolate::GetCurrent();
187-
auto objectManager = Runtime::GetObjectManager(isolate);
188185

189-
string excClassName = objectManager->GetClassName((jobject) m_javaException);
186+
string excClassName = ObjectManager::GetClassName((jobject) m_javaException);
190187
if (excClassName == "com/tns/NativeScriptException") {
191188
jfieldID fieldID = env.GetFieldID(env.GetObjectClass(m_javaException), "jsValueAddress", "J");
192189
jlong addr = env.GetLongField(m_javaException, fieldID);

0 commit comments

Comments
 (0)