From e3d2feaa1f5acb011403925c81d58b589edbfa7c Mon Sep 17 00:00:00 2001 From: Keun young Park Date: Fri, 29 Mar 2019 17:42:32 -0700 Subject: [PATCH] Fix wallpaper NPE caused by user switching before IWallpaperService connection - car side is doing quick user switching during boot-up and that leads into wallpaper user switching before the service connection. user 0 start, user 0 unlock, user switch to user 10, boot complete, user 10 unlock Bug: 129569939 Test: Try user switching flow in car env and confirm no crash Change-Id: I764f68377ddf8b581f8386a236aa5c24a96368dd --- .../android/server/wallpaper/WallpaperManagerService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index c2a4339eceda8..d52ba169768f2 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -2671,7 +2671,10 @@ public class WallpaperManagerService extends IWallpaperManager.Stub wallpaper.connection.mReply = null; } try { - wallpaper.connection.mService.detach(); + // It can be null if user switching happens before service connection. + if (wallpaper.connection.mService != null) { + wallpaper.connection.mService.detach(); + } } catch (RemoteException e) { Slog.w(TAG, "Failed detaching wallpaper service ", e); }