From fb21c09dbedfbd742a0b962b6d7eaf041680d693 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Sun, 17 Mar 2013 11:19:36 -0700 Subject: [PATCH] Catch NPE thrown by APN provider. --- src/org/thoughtcrime/securesms/database/MmsDatabase.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/database/MmsDatabase.java b/src/org/thoughtcrime/securesms/database/MmsDatabase.java index d1144c59e..b3c77700b 100644 --- a/src/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/src/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -473,7 +473,14 @@ public class MmsDatabase extends Database { String selection = Util.isEmpty(apn) ? null : "apn = ?"; String[] selectionArgs = Util.isEmpty(apn) ? null : new String[] {apn.trim()}; - return context.getContentResolver().query(uri, null, selection, selectionArgs, null); + try { + return context.getContentResolver().query(uri, null, selection, selectionArgs, null); + } catch (NullPointerException npe) { + // NOTE - This is dumb, but on some devices there's an NPE in the Android framework + // for the provider of this call, which gets rethrown back to here through a binder + // call. + throw new IllegalArgumentException(npe); + } } private PduHeaders getHeadersForId(long messageId) throws MmsException {