From 2d3894fb095df62558d196b55b17ac4bd9c3384c Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Wed, 17 Apr 2024 11:52:02 -0700 Subject: [PATCH] Don't crash when execute_method fails (#3104) Summary: Currently, we hard crash the process when execute_method failed, and it's not catchable. Instead, we should return null to Java, so they can handle. Differential Revision: D56260831 --- extension/android/jni/jni_layer.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/extension/android/jni/jni_layer.cpp b/extension/android/jni/jni_layer.cpp index 4089a7e0ff0..65590e7d43e 100644 --- a/extension/android/jni/jni_layer.cpp +++ b/extension/android/jni/jni_layer.cpp @@ -324,12 +324,14 @@ class ExecuTorchJni : public facebook::jni::HybridClass { #endif - ET_CHECK_MSG( - result.ok(), - "Execution of method %s failed with status 0x%" PRIx32, - method.c_str(), - static_cast(result.error())); - ET_LOG(Info, "Model executed successfully."); + if (!result.ok()) { + ET_LOG( + Error, + "Execution of method %s failed with status 0x%" PRIx32, + method.c_str(), + static_cast(result.error())); + return {}; + } facebook::jni::local_ref> jresult = facebook::jni::JArrayClass::newArray(result.get().size());