Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2bb347e authored by Prameet Shah's avatar Prameet Shah
Browse files

Catch SqlLiteException if database query throws an exception in CalendarTracker.java

Bug: 149756348
Test: Successfully build crosshatch-eng
Change-Id: I548c5c5f2f06bed2595702da88f34f1eb6495117
(cherry picked from commit aad87b9198bfa9f9fe35ca102021bf5d23a0c470)
parent f3e7dfe1
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -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();