Bug 1232608 - After transferring bookmarks and history, Fennec crashes when input something in the address bar. r=rnewman draft
authorChenxia Liu <liuche@mozilla.com>
Mon, 01 Feb 2016 16:11:45 -0800
changeset 327808 215c669b340349d2b2df52598c22899b07bd6d87
parent 327752 fd4b62ebe725c28631be99c005060b7d57718c31
child 513766 c143c4b949750f15e2a6f49b637afff3788b30d1
push id10309
push usercliu@mozilla.com
push dateTue, 02 Feb 2016 01:20:22 +0000
reviewersrnewman
bugs1232608
milestone47.0a1
Bug 1232608 - After transferring bookmarks and history, Fennec crashes when input something in the address bar. r=rnewman
mobile/android/base/java/org/mozilla/gecko/home/SearchLoader.java
mobile/android/base/java/org/mozilla/gecko/preferences/AndroidImport.java
--- a/mobile/android/base/java/org/mozilla/gecko/home/SearchLoader.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/SearchLoader.java
@@ -29,17 +29,17 @@ class SearchLoader {
     private static final String KEY_FILTER_FLAGS = "flags";
 
     private SearchLoader() {
     }
 
     @SuppressWarnings("unchecked")
     public static Loader<Cursor> createInstance(Context context, Bundle args) {
         if (args != null) {
-            final String searchTerm = args.getString(KEY_SEARCH_TERM);
+            final String searchTerm = args.getString(KEY_SEARCH_TERM, "");
             final EnumSet<FilterFlags> flags =
                     (EnumSet<FilterFlags>) args.getSerializable(KEY_FILTER_FLAGS);
             return new SearchCursorLoader(context, searchTerm, flags);
         } else {
             return new SearchCursorLoader(context, "", EnumSet.noneOf(FilterFlags.class));
         }
     }
 
--- a/mobile/android/base/java/org/mozilla/gecko/preferences/AndroidImport.java
+++ b/mobile/android/base/java/org/mozilla/gecko/preferences/AndroidImport.java
@@ -68,17 +68,18 @@ public class AndroidImport implements Ru
         mImportHistory = doHistory;
     }
 
     public void mergeBookmarks() {
         Cursor cursor = null;
         try {
             cursor = query(LegacyBrowserProvider.BOOKMARKS_URI,
                                SAMSUNG_BOOKMARKS_URI,
-                               LegacyBrowserProvider.BookmarkColumns.BOOKMARK + " = 1");
+                               LegacyBrowserProvider.BookmarkColumns.BOOKMARK + " = 1 AND " +
+                               LegacyBrowserProvider.BookmarkColumns.URL + " IS NOT NULL");
 
             if (cursor != null) {
                 final int faviconCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.FAVICON);
                 final int titleCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.TITLE);
                 final int urlCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.URL);
                 // http://code.google.com/p/android/issues/detail?id=17969
                 final int createCol = cursor.getColumnIndex(LegacyBrowserProvider.BookmarkColumns.CREATED);
 
@@ -115,17 +116,18 @@ public class AndroidImport implements Ru
     }
 
     public void mergeHistory() {
         Cursor cursor = null;
         try {
             cursor = query (LegacyBrowserProvider.BOOKMARKS_URI,
                                 SAMSUNG_HISTORY_URI,
                                 LegacyBrowserProvider.BookmarkColumns.BOOKMARK + " = 0 AND " +
-                                LegacyBrowserProvider.BookmarkColumns.VISITS + " > 0");
+                                LegacyBrowserProvider.BookmarkColumns.VISITS + " > 0 AND " +
+                                BrowserContract.Combined.URL + " IS NOT NULL");
 
             if (cursor != null) {
                 final int dateCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.DATE);
                 final int faviconCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.FAVICON);
                 final int titleCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.TITLE);
                 final int urlCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.URL);
                 final int visitsCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.VISITS);