summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2020-07-08 16:45:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-07-08 16:45:34 +0000
commit628198a90f2ab46f5b30160469a3df728ebc619e (patch)
treea29a08d4dfd51484ac2c5e45f142da01276be7de
parent944082eca5feede79e0dd0c6e8a892ef835c6872 (diff)
parentf42e63d8ae301a741bebfd0073ef6a70cff22090 (diff)
Merge "HIDL Java: DeadObjectException"
-rw-r--r--core/jni/android_os_HwParcel.cpp16
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;
}