From b38b94ed79a5eacd2e4b30956533000b8a726fbe Mon Sep 17 00:00:00 2001 From: Grisha Kruglov Date: Fri, 9 Aug 2019 17:43:48 -0700 Subject: [PATCH] Closes #4671: Fix a potential NPE in BookmarkFragment --- .../org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index 7daed4e6d..b65b35bab 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -237,7 +237,11 @@ class BookmarkFragment : LibraryPageFragment(), BackHandler, Accou } private suspend fun refreshBookmarks() { - context?.bookmarkStorage()?.getTree(bookmarkStore.state.tree!!.guid, false).withOptionalDesktopFolders(context) + // The bookmark tree in our 'state' can be null - meaning, no bookmark tree has been selected. + // If that's the case, we don't know what node to refresh, and so we bail out. + // See https://github.com/mozilla-mobile/fenix/issues/4671 + val currentGuid = bookmarkStore.state.tree?.guid ?: return + context?.bookmarkStorage()?.getTree(currentGuid, false).withOptionalDesktopFolders(context) ?.let { node -> var rootNode = node pendingBookmarksToDelete.forEach {