Commit 9b3cf342 authored by Chris Peterson's avatar Chris Peterson
Browse files

Bug 712791 - Avoid cnn.com crash by catching SQLite exception. r=dougt a=dougt

parent a07b27d4
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.database.sqlite.SQLiteConstraintException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
@@ -51,8 +52,10 @@ import android.net.Uri;
import android.os.Build;
import android.provider.Browser;
import android.provider.Browser.BookmarkColumns;
import android.util.Log;

public class AndroidBrowserDB implements BrowserDB.BrowserDBIface {
    private static final String LOGTAG = "AndroidBrowserDB";
    private static final String URL_COLUMN_ID = "_id";
    private static final String URL_COLUMN_THUMBNAIL = "thumbnail";

@@ -286,8 +289,19 @@ public class AndroidBrowserDB implements BrowserDB.BrowserDBIface {
                                Browser.BookmarkColumns.URL + " = ?",
                                new String[] { uri });

        if (updated == 0)
        if (updated == 0) {
            try {
                cr.insert(Browser.BOOKMARKS_URI, values);
            } catch (SQLiteConstraintException e) {
                // insert() mysteriously and intermittently fails with "error
                // code 19: constraint failed" on some Honeycomb and ICS
                // devices. Bookmark favicons are not a critical feature, so
                // we can ignore this error for now. bug 711977; bug 712791
                Log.e(LOGTAG,
                      String.format("Inserting favicon for \"%s\" failed with SQLiteConstraintException: %s",
                                    uri, e.getMessage()));
            }
        }
    }

    public void updateThumbnailForUrl(ContentResolver cr, String uri,