Merge "Throw DeadObjectException on failed transaction, not RuntimeException" into mnc-dev
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index e2cfa44..c139cd7 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -697,9 +697,11 @@
             } else {
                 // Heuristic: a payload smaller than this threshold "shouldn't" be too
                 // big, so it's probably some other, more subtle problem.  In practice
-                // it nearly always means that the remote process died while the binder
+                // it seems to always mean that the remote process died while the binder
                 // transaction was already in flight.
-                exceptionToThrow = "java/lang/RuntimeException";
+                exceptionToThrow = (canThrowRemoteException)
+                        ? "android/os/DeadObjectException"
+                        : "java/lang/RuntimeException";
                 snprintf(msg, sizeof(msg)-1,
                         "Transaction failed on small parcel; remote process probably died");
             }