From 801e342faaa45708e15f488af4c8fc2f9de91712 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 25 Jan 2017 11:35:44 -0800 Subject: [PATCH] Don't return self if not a profile This fixes the inconsistency between no profile and a removed profile. Change-Id: I85d37ce42113bde8567be382372c5f4997601e85 Fixes: 34699518 Test: runtest -x frameworks/base/services/tests/servicetests/src/com/android/server/pm/UserManagerTest.java --- .../core/java/com/android/server/pm/UserManagerService.java | 2 +- .../src/com/android/server/pm/UserManagerTest.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 1eb8b943de9ad..58683d7269b45 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -718,7 +718,7 @@ public class UserManagerService extends IUserManager.Stub { return null; } int parentUserId = profile.profileGroupId; - if (parentUserId == UserInfo.NO_PROFILE_GROUP_ID) { + if (parentUserId == userHandle || parentUserId == UserInfo.NO_PROFILE_GROUP_ID) { return null; } else { return getUserInfoLU(parentUserId); diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java index 9b2c94e0d63b4..1964cad1aefcc 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java @@ -177,10 +177,12 @@ public class UserManagerTest extends AndroidTestCase { UserInfo userInfo = createProfileForUser("Profile", UserInfo.FLAG_MANAGED_PROFILE, primaryUserId); assertNotNull(userInfo); - + assertNull(mUserManager.getProfileParent(primaryUserId)); UserInfo parentProfileInfo = mUserManager.getProfileParent(userInfo.id); assertNotNull(parentProfileInfo); assertEquals(parentProfileInfo.id, primaryUserId); + removeUser(userInfo.id); + assertNull(mUserManager.getProfileParent(primaryUserId)); } // Make sure only one managed profile can be created