From eb75888e6479317151c2ed44d47bd28ef567a4c7 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Mon, 26 Jul 2010 17:47:45 -0700 Subject: [PATCH] Fix StrictMode for Binder.dump() Change-Id: I378f5e3d6512d06b46248b9bb6d9c727e3f6bf1d --- core/java/android/os/Binder.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 59b8274a481b2..f8260cababeb1 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -226,9 +226,16 @@ public class Binder implements IBinder { try { fd.close(); } catch (IOException e) { + // swallowed, not propagated back to the caller } } } + // Write the StrictMode header. + if (reply != null) { + reply.writeNoException(); + } else { + StrictMode.clearGatheredViolations(); + } return true; } return false; @@ -341,12 +348,15 @@ final class BinderProxy implements IBinder { public void dump(FileDescriptor fd, String[] args) throws RemoteException { Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); data.writeFileDescriptor(fd); data.writeStringArray(args); try { - transact(DUMP_TRANSACTION, data, null, 0); + transact(DUMP_TRANSACTION, data, reply, 0); + reply.readException(); } finally { data.recycle(); + reply.recycle(); } }