From 2aa5a9df8a3ddea69146e126ccc21da77b2a228d Mon Sep 17 00:00:00 2001 From: "Chrison.chai" Date: Wed, 15 Nov 2017 09:31:26 +0800 Subject: [PATCH] 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 --- .../android/systemui/statusbar/phone/LightBarController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java index 533771a31d0ef..13617f127b3e3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java @@ -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(); } }