Closed Bug 965822 Opened 11 years ago Closed 11 years ago

crash in java.lang.NullPointerException: at org.mozilla.gecko.home.HomeListView$1.onItemClick(HomeListView.java)

Categories

(Firefox for Android Graveyard :: General, defect)

29 Branch
All
Android
defect
Not set
critical

Tracking

(firefox29 fixed, firefox30 fixed, fennec29+)

RESOLVED FIXED
Firefox 30
Tracking Status
firefox29 --- fixed
firefox30 --- fixed
fennec 29+ ---

People

(Reporter: aaronmt, Assigned: Margaret)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

This bug was filed from the Socorro interface and is report bp-dad62d76-4871-4d53-99b7-fb2172140127. =============================================================
Looks like it's caused by this line: http://hg.mozilla.org/mozilla-central/annotate/735a648bca0d/mobile/android/base/home/HomeListView.java#l112 I see in the stack we're calling HomePager.hide before we get here, it seems like there might be some race between trying to hide the home pager and handling the click?
I just hit this again on Nightly (03/05). I believe all I did was hit a thumbnail? E/MessageQueue-JNI(30923): java.lang.NullPointerException E/MessageQueue-JNI(30923): at org.mozilla.gecko.home.HomeListView$1.onItemClick(HomeListView.java:114) E/MessageQueue-JNI(30923): at android.widget.AdapterView.performItemClick(AdapterView.java:299) E/MessageQueue-JNI(30923): at android.widget.AbsListView.performItemClick(AbsListView.java:1113) E/MessageQueue-JNI(30923): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) E/MessageQueue-JNI(30923): at android.widget.AbsListView$3.run(AbsListView.java:3638) E/MessageQueue-JNI(30923): at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2770) E/MessageQueue-JNI(30923): at org.mozilla.gecko.home.HomeListView.onDetachedFromWindow(HomeListView.java:74) E/MessageQueue-JNI(30923): at android.view.View.dispatchDetachedFromWindow(View.java:12620) E/MessageQueue-JNI(30923): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2587) E/MessageQueue-JNI(30923): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2585) E/MessageQueue-JNI(30923): at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3845) E/MessageQueue-JNI(30923): at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3818) E/MessageQueue-JNI(30923): at android.view.ViewGroup.removeView(ViewGroup.java:3750) E/MessageQueue-JNI(30923): at android.support.v4.view.ViewPager.removeView(ViewPager.java:1259) E/MessageQueue-JNI(30923): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1009) E/MessageQueue-JNI(30923): at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1185) E/MessageQueue-JNI(30923): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:652) E/MessageQueue-JNI(30923): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) E/MessageQueue-JNI(30923): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) E/MessageQueue-JNI(30923): at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) E/MessageQueue-JNI(30923): at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:409) E/MessageQueue-JNI(30923): at org.mozilla.gecko.home.HomePager.unload(HomePager.java:200) E/MessageQueue-JNI(30923): at org.mozilla.gecko.BrowserApp.hideHomePager(BrowserApp.java:1764) E/MessageQueue-JNI(30923): at org.mozilla.gecko.BrowserApp.hideHomePager(BrowserApp.java:1744) E/MessageQueue-JNI(30923): at org.mozilla.gecko.BrowserApp.access$1000(BrowserApp.java:100) E/MessageQueue-JNI(30923): at org.mozilla.gecko.BrowserApp$14.onStopEditing(BrowserApp.java:542) E/MessageQueue-JNI(30923): at org.mozilla.gecko.toolbar.BrowserToolbar.stopEditing(BrowserToolbar.java:1048) E/MessageQueue-JNI(30923): at org.mozilla.gecko.toolbar.BrowserToolbar.onBackPressed(BrowserToolbar.java:378) E/MessageQueue-JNI(30923): at org.mozilla.gecko.BrowserApp.onBackPressed(BrowserApp.java:636) E/MessageQueue-JNI(30923): at android.app.Activity.onKeyUp(Activity.java:2193) E/MessageQueue-JNI(30923): at android.view.KeyEvent.dispatch(KeyEvent.java:2664) E/MessageQueue-JNI(30923): at android.app.Activity.dispatchKeyEvent(Activity.java:2423) E/MessageQueue-JNI(30923): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1969) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558) E/MessageQueue-JNI(30923): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718) E/MessageQueue-JNI(30923): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2010) E/MessageQueue-JNI(30923): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1704) E/MessageQueue-JNI(30923): at android.view.inputmethod.InputMethodManager.finishedI D/AndroidRuntime(30923): Shutting down VM W/dalvikvm(30923): threadid=1: thread exiting with uncaught exception (group=0x41bfdd40) E/GeckoAppShell(30923): >>> REPORTING UNCAUGHT EXCEPTION FROM THREAD 1 ("main") E/GeckoAppShell(30923): java.lang.NullPointerException E/GeckoAppShell(30923): at org.mozilla.gecko.home.HomeListView$1.onItemClick(HomeListView.java:114) E/GeckoAppShell(30923): at android.widget.AdapterView.performItemClick(AdapterView.java:299) E/GeckoAppShell(30923): at android.widget.AbsListView.performItemClick(AbsListView.java:1113) E/GeckoAppShell(30923): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) E/GeckoAppShell(30923): at android.widget.AbsListView$3.run(AbsListView.java:3638) E/GeckoAppShell(30923): at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2770) E/GeckoAppShell(30923): at org.mozilla.gecko.home.HomeListView.onDetachedFromWindow(HomeListView.java:74) E/GeckoAppShell(30923): at android.view.View.dispatchDetachedFromWindow(View.java:12620) E/GeckoAppShell(30923): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2587) E/GeckoAppShell(30923): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2585) E/GeckoAppShell(30923): at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3845) E/GeckoAppShell(30923): at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3818) E/GeckoAppShell(30923): at android.view.ViewGroup.removeView(ViewGroup.java:3750) E/GeckoAppShell(30923): at android.support.v4.view.ViewPager.removeView(ViewPager.java:1259) E/GeckoAppShell(30923): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1009) E/GeckoAppShell(30923): at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1185) E/GeckoAppShell(30923): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:652) E/GeckoAppShell(30923): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) E/GeckoAppShell(30923): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) E/GeckoAppShell(30923): at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) E/GeckoAppShell(30923): at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:409) E/GeckoAppShell(30923): at org.mozilla.gecko.home.HomePager.unload(HomePager.java:200) E/GeckoAppShell(30923): at org.mozilla.gecko.BrowserApp.hideHomePager(BrowserApp.java:1764) E/GeckoAppShell(30923): at org.mozilla.gecko.BrowserApp.hideHomePager(BrowserApp.java:1744) E/GeckoAppShell(30923): at org.mozilla.gecko.BrowserApp.access$1000(BrowserApp.java:100) E/GeckoAppShell(30923): at org.mozilla.gecko.BrowserApp$14.onStopEditing(BrowserApp.java:542) E/GeckoAppShell(30923): at org.mozilla.gecko.toolbar.BrowserToolbar.stopEditing(BrowserToolbar.java:1048) E/GeckoAppShell(30923): at org.mozilla.gecko.toolbar.BrowserToolbar.onBackPressed(BrowserToolbar.java:378) E/GeckoAppShell(30923): at org.mozilla.gecko.BrowserApp.onBackPressed(BrowserApp.java:636) E/GeckoAppShell(30923): at android.app.Activity.onKeyUp(Activity.java:2193) E/GeckoAppShell(30923): at android.view.KeyEvent.dispatch(KeyEvent.java:2664) E/GeckoAppShell(30923): at android.app.Activity.dispatchKeyEvent(Activity.java:2423) E/GeckoAppShell(30923): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1969) E/GeckoAppShell(30923): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852) E/GeckoAppShell(30923): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/GeckoAppShell(30923): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426) E/GeckoAppShell(30923): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449) E/GeckoAppShell(30923): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418) E/GeckoAppShell(30923): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558) E/GeckoAppShell(30923): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718) E/GeckoAppShell(30923): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2010) E/GeckoAppShell(30923): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1704) E/GeckoAppShell(30923): at E/Gecko (30923): mozalloc_abort: Redirecting call to abort() to mozalloc_abort F/libc (30923): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 30923 (.mozilla.fennec)
This looks very suspicious: http://hg.mozilla.org/mozilla-central/rev/0e7f583a8f1a I'm going to assume this is a regression caused by bug 930160. We probably want a null check in here that just calls super.setOnItemClickListener(null) if listener is null: http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/home/HomeListView.java#106 Lucas, what do you think?
Blocks: 930160
Flags: needinfo?(lucasr.at.mozilla)
Keywords: regression
(In reply to :Margaret Leibovic from comment #3) > This looks very suspicious: > http://hg.mozilla.org/mozilla-central/rev/0e7f583a8f1a > > I'm going to assume this is a regression caused by bug 930160. > > We probably want a null check in here that just calls > super.setOnItemClickListener(null) if listener is null: > http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/home/ > HomeListView.java#106 > > Lucas, what do you think? Nice catch. I just assumed HomeListView's setOnItemClickListener() was sane when I was working on bug 930160. Yes, your suggestion sounds like a good plan.
Flags: needinfo?(lucasr.at.mozilla)
(In reply to Lucas Rocha (:lucasr) from comment #4) > (In reply to :Margaret Leibovic from comment #3) > > This looks very suspicious: > > http://hg.mozilla.org/mozilla-central/rev/0e7f583a8f1a > > > > I'm going to assume this is a regression caused by bug 930160. > > > > We probably want a null check in here that just calls > > super.setOnItemClickListener(null) if listener is null: > > http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/home/ > > HomeListView.java#106 > > > > Lucas, what do you think? > > Nice catch. I just assumed HomeListView's setOnItemClickListener() was sane > when I was working on bug 930160. Yes, your suggestion sounds like a good > plan. Cool, I can come up with a patch here, you can review :)
Assignee: nobody → margaret.leibovic
tracking-fennec: --- → 29+
I wasn't able to reproduce the crash locally, so I couldn't test that this fixed it, but looking at the stack, I'm pretty positive this will do the job.
Attachment #8386832 - Flags: review?(lucasr.at.mozilla)
Comment on attachment 8386832 [details] [diff] [review] Add null check to HomeListView.setOnItemClickListener Review of attachment 8386832 [details] [diff] [review]: ----------------------------------------------------------------- Yep.
Attachment #8386832 - Flags: review?(lucasr.at.mozilla) → review+
Comment on attachment 8386832 [details] [diff] [review] Add null check to HomeListView.setOnItemClickListener [Approval Request Comment] Bug caused by (feature/regressing bug #): bug 930160 User impact if declined: app can crash Testing completed (on m-c, etc.): tested locally, just pushed to fx-team Risk to taking this patch (and alternatives if risky): low-risk, adds a null check String or IDL/UUID changes made by this patch: none
Attachment #8386832 - Flags: approval-mozilla-aurora?
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 30
Attachment #8386832 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: