diff options
author | Steven Moreland <smoreland@google.com> | 2020-07-08 16:45:34 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-07-08 16:45:34 +0000 |
commit | 628198a90f2ab46f5b30160469a3df728ebc619e (patch) | |
tree | a29a08d4dfd51484ac2c5e45f142da01276be7de | |
parent | 944082eca5feede79e0dd0c6e8a892ef835c6872 (diff) | |
parent | f42e63d8ae301a741bebfd0073ef6a70cff22090 (diff) |
Merge "HIDL Java: DeadObjectException"
-rw-r--r-- | core/jni/android_os_HwParcel.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/jni/android_os_HwParcel.cpp b/core/jni/android_os_HwParcel.cpp index a88f8919ed08..ff336ee64b54 100644 --- a/core/jni/android_os_HwParcel.cpp +++ b/core/jni/android_os_HwParcel.cpp @@ -122,10 +122,18 @@ void signalExceptionForError(JNIEnv *env, status_t err, bool canThrowRemoteExcep std::stringstream ss; ss << "HwBinder Error: (" << err << ")"; - jniThrowException( - env, - canThrowRemoteException ? "android/os/RemoteException" : "java/lang/RuntimeException", - ss.str().c_str()); + const char* exception = nullptr; + if (canThrowRemoteException) { + if (err == DEAD_OBJECT) { + exception = "android/os/DeadObjectException"; + } else { + exception = "android/os/RemoteException"; + } + } else { + exception = "java/lang/RuntimeException"; + } + + jniThrowException(env, exception, ss.str().c_str()); break; } |