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)
Tracking
(firefox29 fixed, firefox30 fixed, fennec29+)
RESOLVED
FIXED
Firefox 30
People
(Reporter: aaronmt, Assigned: Margaret)
References
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
1.23 KB,
patch
|
lucasr
:
review+
Sylvestre
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is
report bp-dad62d76-4871-4d53-99b7-fb2172140127.
=============================================================
Assignee | ||
Comment 1•11 years ago
|
||
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?
Reporter | ||
Comment 2•11 years ago
|
||
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)
status-firefox29:
--- → affected
status-firefox30:
--- → affected
Assignee | ||
Comment 3•11 years ago
|
||
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?
Comment 4•11 years ago
|
||
(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)
Assignee | ||
Comment 5•11 years ago
|
||
(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
Assignee | ||
Updated•11 years ago
|
tracking-fennec: --- → 29+
Assignee | ||
Comment 6•11 years ago
|
||
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 7•11 years ago
|
||
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+
Assignee | ||
Comment 8•11 years ago
|
||
Assignee | ||
Comment 9•11 years ago
|
||
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
Updated•11 years ago
|
Updated•11 years ago
|
Attachment #8386832 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 11•11 years ago
|
||
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•