Bug 1274901 - NullPointerException thrown in Tabs.java should be checked r?mcomella draft
authorJonathan Almeida (:jonalmeida) <jonalmeida942@gmail.com>
Tue, 24 May 2016 15:08:52 -0700
changeset 372347 02cdea662797570bd130ae9bd0abe8a0715b5fbb
parent 370499 2dc0440c0d6a3741a9d7791f9c0a180f78a91747
child 522169 998281c51d08b31237294ccdbeff2106080a42ee
push id19513
push userjonalmeida942@gmail.com
push dateSat, 28 May 2016 03:46:28 +0000
reviewersmcomella
bugs1274901
milestone49.0a1
Bug 1274901 - NullPointerException thrown in Tabs.java should be checked r?mcomella MozReview-Commit-ID: 2hMZn75BpeT
mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
@@ -4,16 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.toolbar;
 
 import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.List;
 
+import android.support.annotation.Nullable;
 import android.support.v4.content.ContextCompat;
 import org.mozilla.gecko.AppConstants.Versions;
 import org.mozilla.gecko.BrowserApp;
 import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
 import org.mozilla.gecko.Telemetry;
@@ -398,17 +399,17 @@ public abstract class BrowserToolbar ext
         if (!isEditing()) {
             throw new IllegalStateException("Expected to be editing");
         }
 
         urlEditLayout.restoreTabEditingState(editingState);
     }
 
     @Override
-    public void onTabChanged(@NonNull Tab tab, Tabs.TabEvents msg, String data) {
+    public void onTabChanged(@Nullable Tab tab, Tabs.TabEvents msg, String data) {
         Log.d(LOGTAG, "onTabChanged: " + msg);
         final Tabs tabs = Tabs.getInstance();
 
         // These conditions are split into three phases:
         // * Always do first
         // * Handling specific to the selected tab
         // * Always do afterwards.
 
@@ -487,17 +488,17 @@ public abstract class BrowserToolbar ext
                     flags.add(UpdateFlags.FAVICON);
                     break;
 
                 case SECURITY_CHANGE:
                     flags.add(UpdateFlags.SITE_IDENTITY);
                     break;
             }
 
-            if (!flags.isEmpty()) {
+            if (!flags.isEmpty() && tab != null) {
                 updateDisplayLayout(tab, flags);
             }
         }
 
         switch (msg) {
             case SELECTED:
             case LOAD_ERROR:
             case LOCATION_CHANGE: