diff options
| author | 2020-06-15 17:35:33 +0000 | |
|---|---|---|
| committer | 2020-06-15 17:35:33 +0000 | |
| commit | c4568caf2c71f28b5c9b6d642acc996c46cd3927 (patch) | |
| tree | 1a32214d579715b6d3d6bc95740aaade6a463897 | |
| parent | 14a02055eb12d2f1c7c213fefa1b93de828c794b (diff) | |
| parent | e2bb347ef353a77be4e2ac1d866d2238bf02ceed (diff) | |
Merge "Catch SqlLiteException if database query throws an exception in CalendarTracker.java" into rvc-dev
| -rw-r--r-- | services/core/java/com/android/server/notification/CalendarTracker.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/notification/CalendarTracker.java b/services/core/java/com/android/server/notification/CalendarTracker.java index 3829b6580c59..cfcf6ebf9540 100644 --- a/services/core/java/com/android/server/notification/CalendarTracker.java +++ b/services/core/java/com/android/server/notification/CalendarTracker.java @@ -21,6 +21,7 @@ import android.content.ContentUris; import android.content.Context; import android.database.ContentObserver; import android.database.Cursor; +import android.database.sqlite.SQLiteException; import android.net.Uri; import android.provider.CalendarContract.Attendees; import android.provider.CalendarContract.Calendars; @@ -102,6 +103,8 @@ public class CalendarTracker { while (cursor != null && cursor.moveToNext()) { rt.add(cursor.getLong(0)); } + } catch (SQLiteException e) { + Slog.w(TAG, "error querying calendar content provider", e); } finally { if (cursor != null) { cursor.close(); @@ -118,11 +121,12 @@ public class CalendarTracker { ContentUris.appendId(uriBuilder, time); ContentUris.appendId(uriBuilder, time + EVENT_CHECK_LOOKAHEAD); final Uri uri = uriBuilder.build(); - final Cursor cursor = mUserContext.getContentResolver().query(uri, INSTANCE_PROJECTION, - null, null, INSTANCE_ORDER_BY); + Cursor cursor = null; final CheckEventResult result = new CheckEventResult(); result.recheckAt = time + EVENT_CHECK_LOOKAHEAD; try { + cursor = mUserContext.getContentResolver().query(uri, INSTANCE_PROJECTION, + null, null, INSTANCE_ORDER_BY); final ArraySet<Long> calendars = getCalendarsWithAccess(); while (cursor != null && cursor.moveToNext()) { final long begin = cursor.getLong(0); @@ -183,9 +187,10 @@ public class CalendarTracker { selection = null; selectionArgs = null; } - final Cursor cursor = mUserContext.getContentResolver().query(Attendees.CONTENT_URI, - ATTENDEE_PROJECTION, selection, selectionArgs, null); + Cursor cursor = null; try { + cursor = mUserContext.getContentResolver().query(Attendees.CONTENT_URI, + ATTENDEE_PROJECTION, selection, selectionArgs, null); if (cursor == null || cursor.getCount() == 0) { if (DEBUG) Log.d(TAG, "No attendees found"); return true; @@ -205,6 +210,9 @@ public class CalendarTracker { rt |= eventMeets; } return rt; + } catch (SQLiteException e) { + Slog.w(TAG, "error querying attendees content provider", e); + return false; } finally { if (cursor != null) { cursor.close(); |