From 6dc0ef005d31f1aaf277164e8bc79be9068e8bf2 Mon Sep 17 00:00:00 2001 From: Karl Rosaen Date: Mon, 22 Jun 2009 12:51:35 -0700 Subject: [PATCH] BulkCursorToCursorAdaptor.respond no longer assumes RemoteException is impossible, fails more gracefully. This fixes bug 1923131 which was crashing the system process in some cases when the search dialog was calling respond on its cursor to GlobalSearch. --- core/java/android/database/BulkCursorToCursorAdaptor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/java/android/database/BulkCursorToCursorAdaptor.java b/core/java/android/database/BulkCursorToCursorAdaptor.java index c26810a6248fe..cf30dd9a9112d 100644 --- a/core/java/android/database/BulkCursorToCursorAdaptor.java +++ b/core/java/android/database/BulkCursorToCursorAdaptor.java @@ -247,9 +247,11 @@ public final class BulkCursorToCursorAdaptor extends AbstractWindowedCursor { try { return mBulkCursor.respond(extras); } catch (RemoteException e) { - // This should never happen because the system kills processes that are using remote - // cursors when the provider process is killed. - throw new RuntimeException(e); + // the system kills processes that are using remote cursors when the provider process + // is killed, but this can still happen if this is being called from the system process, + // so, better to log and return an empty bundle. + Log.w(TAG, "respond() threw RemoteException, returning an empty bundle.", e); + return Bundle.EMPTY; } } }