Fix random systemui crashes during cts test DO NOT MERGE

systemui may crash due
    to an uninitialized value of mNavigationBar probably because
    of some race condition during initialization caused by emulation
    performance issues:

    11-01 19:48:58.634  5064  5064 E AndroidRuntime: FATAL EXCEPTION: main
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: Process: com.android.systemui, PID: 5064
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.android.systemui.statusbar.phone.LightBarTransitionsController.dump (java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[])' on a null object reference
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.systemui.statusbar.phone.LightBarController.dump(LightBarController.java:241)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.dump(StatusBar.java:3448)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.systemui.SystemBars.dump(SystemBars.java:48)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.systemui.SystemUIService.dump(SystemUIService.java:52)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.app.ActivityThread.handleDumpService(ActivityThread.java:3488)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.app.ActivityThread.-wrap9(Unknown Source:0)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.app.ActivityThread.handleMessage(ActivityThread.java:1726)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:105)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6541)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.internal.os.Zygote.run(Zygote.java:240)
    11-01 19:48:58.634  5064  5064 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

    This patches adds an explicit checks for (mNavigationBar != null)
    everywhere it is used.

    Test: cts test.

Change-Id: I8056aef54a10bbb1970bc2ce4913e7a618498fd3
This commit is contained in:
Chrison.chai
2017-11-15 09:31:26 +08:00
committed by Jason Monk
parent f5bec0d781
commit 2aa5a9df8a

View File

@@ -265,7 +265,9 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
mStatusBarIconController.getTransitionsController().dump(fd, pw, args);
pw.println();
pw.println(" NavigationBarTransitionsController:");
mNavigationBarController.dump(fd, pw, args);
if (mNavigationBarController != null) {
mNavigationBarController.dump(fd, pw, args);
}
pw.println();
}
}