Closed Bug 911105 Opened 11 years ago Closed 9 years ago

Intermittent testSearchSuggestions | Exception caught - java.lang.NullPointerException

Categories

(Firefox for Android Graveyard :: Awesomescreen, defect)

ARM
Android
defect
Not set
normal

Tracking

(firefox35 fixed, firefox36 fixed, firefox37 fixed, firefox-esr31 fixed)

RESOLVED FIXED
Firefox 37
Tracking Status
firefox35 --- fixed
firefox36 --- fixed
firefox37 --- fixed
firefox-esr31 --- fixed

People

(Reporter: emorley, Assigned: gbrown)

Details

(Keywords: intermittent-failure)

Attachments

(2 files)

Android Armv6 Tegra 250 mozilla-central opt test robocop-1 on 2013-08-29 19:06:11 PDT for push c7459bc8e449

slave: tegra-038

https://tbpl.mozilla.org/php/getParsedLog.php?id=27205582&tree=Mozilla-Central

{
1 INFO TEST-START | testSearchSuggestions
EventExpecter: no longer listening for Gecko:Ready
2 INFO TEST-PASS | testSearchSuggestions | waiting for urlbar text to gain focus - urlbar text gained focus
EventExpecter: no longer listening for SearchEngines:Data
3 INFO TEST-PASS | testSearchSuggestions | Results for query 'f' matched expected suggestions - true should equal true
4 INFO TEST-PASS | testSearchSuggestions | Results for query 'fo' matched expected suggestions - true should equal true
Exception caught during test!
java.lang.NullPointerException
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1754)
	at android.widget.ListView.findViewTraversal(ListView.java:3224)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1755)
	at android.view.View.findViewById(View.java:7764)
	at android.view.Window.findViewById(Window.java:726)
	at android.app.Activity.findViewById(Activity.java:1637)
	at org.mozilla.fennec.tests.testSearchSuggestions$1.test(testSearchSuggestions.java:69)
	at org.mozilla.fennec.tests.BaseTest.waitForTest(BaseTest.java:315)
	at org.mozilla.fennec.tests.testSearchSuggestions.testSearchSuggestions(testSearchSuggestions.java:65)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:521)
	at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
	at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
	at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
	at org.mozilla.fennec.tests.BaseTest.runTest(BaseTest.java:161)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
	at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
5 INFO TEST-UNEXPECTED-FAIL | testSearchSuggestions | Exception caught - java.lang.NullPointerException
6 INFO TEST-END | testSearchSuggestions | finished in 25108ms
}
I wonder if this would work better if we used Solo.getView instead of Activity.findViewById.
(In reply to TBPL Robot from comment #22)

This is still happening pretty much the same as in Comment 0:

08:44:17     INFO -  0 ERROR Exception caught during test! - java.lang.NullPointerException
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1760)
08:44:17     INFO -  	at android.widget.ListView.findViewTraversal(ListView.java:3355)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.ViewGroup.findViewTraversal(ViewGroup.java:1761)
08:44:17     INFO -  	at android.view.View.findViewById(View.java:7904)
08:44:17     INFO -  	at android.view.Window.findViewById(Window.java:741)
08:44:17     INFO -  	at android.app.Activity.findViewById(Activity.java:1647)
08:44:17     INFO -  	at org.mozilla.gecko.tests.testSearchSuggestions$1.test(testSearchSuggestions.java:60)
08:44:17     INFO -  	at org.mozilla.gecko.tests.BaseTest$2.isSatisfied(BaseTest.java:341)
08:44:17     INFO -  	at com.jayway.android.robotium.solo.Waiter.waitForCondition(Waiter.java:370)
08:44:17     INFO -  	at com.jayway.android.robotium.solo.Solo.waitForCondition(Solo.java:426)
08:44:17     INFO -  	at org.mozilla.gecko.tests.BaseTest.waitForTest(BaseTest.java:338)
08:44:17     INFO -  	at org.mozilla.gecko.tests.testSearchSuggestions.testSearchSuggestions(testSearchSuggestions.java:56)
08:44:17     INFO -  	at java.lang.reflect.Method.invokeNative(Native Method)
08:44:17     INFO -  	at java.lang.reflect.Method.invoke(Method.java:507)
08:44:17     INFO -  	at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
08:44:17     INFO -  	at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
08:44:17     INFO -  	at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
08:44:17     INFO -  	at org.mozilla.gecko.tests.BaseTest.runTest(BaseTest.java:163)
08:44:17     INFO -  	at junit.framework.TestCase.runBare(TestCase.java:127)
08:44:17     INFO -  	at junit.framework.TestResult$1.protect(TestResult.java:106)
08:44:17     INFO -  	at junit.framework.TestResult.runProtected(TestResult.java:124)
08:44:17     INFO -  	at junit.framework.TestResult.run(TestResult.java:109)
08:44:17     INFO -  	at junit.framework.TestCase.run(TestCase.java:118)
08:44:17     INFO -  	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
08:44:17     INFO -  	at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
08:44:17     INFO -  	at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
08:44:17     INFO -  	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
(In reply to Geoff Brown [:gbrown] from comment #11)
> I wonder if this would work better if we used Solo.getView instead of
> Activity.findViewById.

No, I don't think it would -- see bug 1108717, where we go down the same findViewById rabbit-hole starting with Solo.getView. Maybe Solo.waitForView??
Assignee: nobody → gbrown
I'm not sure this will help, but I think it is worth a try.

It appears to do no harm: https://treeherder.mozilla.org/ui/#/jobs?repo=try&revision=399f8ab4f81f

Mark, I noticed you tried a similar fix somewhere...thought you might have an opinion.
Attachment #8533384 - Flags: review?(mark.finkle)
Comment on attachment 8533384 [details] [diff] [review]
waitForView before proceeding

Yes, I remember doing this in a different test. It did yield many, many green Try runs. I think it's a good pattern.
Attachment #8533384 - Flags: review?(mark.finkle) → review+
https://hg.mozilla.org/mozilla-central/rev/6927294c9834
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → Firefox 37
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.