From 7776536966335c0723d67d623bb998f8b328e8ae Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 3 Apr 2019 18:12:48 -0700 Subject: [PATCH] Do not updateActiveGroup on a handler This method must not return to the caller until complete, otherwise weird race conditions may occur. Bug: 110907543 Test: Builds Change-Id: Ia82671b34fac3662928012d8c709143efdf92266 --- .../com/android/server/biometrics/BiometricServiceBase.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java index d8e7b7db7b750..b631a93d7739c 100644 --- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java +++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java @@ -903,9 +903,8 @@ public abstract class BiometricServiceBase extends SystemService } protected void setActiveUserInternal(int userId) { - mHandler.post(() -> { - updateActiveGroup(userId, null /* clientPackage */); - }); + // Do not put on handler, since it should finish before returning to caller. + updateActiveGroup(userId, null /* clientPackage */); } protected void removeInternal(RemovalClient client) {