From 0ec069ac6baa6724c9c2e45ae72a13c01e862b43 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Mon, 18 Jul 2016 17:08:55 -0700 Subject: [PATCH] Return empty set instead of null when user is not set. - Avoid iterating over null set when checking components for user that isn't currently active. This can happen if the user is changed, and the enabled component set is queried before the set has been rebuilt to include components for the new current user. Bug: 30165350 Change-Id: I4dadad84e6bd2728bea5711b936cba91f6791c99 --- .../server/vr/EnabledComponentsObserver.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/vr/EnabledComponentsObserver.java b/services/core/java/com/android/server/vr/EnabledComponentsObserver.java index 40ee5d88fc8ab..7126cb51b57fd 100644 --- a/services/core/java/com/android/server/vr/EnabledComponentsObserver.java +++ b/services/core/java/com/android/server/vr/EnabledComponentsObserver.java @@ -215,7 +215,11 @@ public class EnabledComponentsObserver implements SettingChangeListener { */ public ArraySet getInstalled(int userId) { synchronized (mLock) { - return mInstalledSet.get(userId); + ArraySet ret = mInstalledSet.get(userId); + if (ret == null) { + return new ArraySet(); + } + return ret; } } @@ -227,7 +231,12 @@ public class EnabledComponentsObserver implements SettingChangeListener { */ public ArraySet getEnabled(int userId) { synchronized (mLock) { - return mEnabledSet.get(userId); + ArraySet ret = mEnabledSet.get(userId); + if (ret == null) { + return new ArraySet(); + } + return ret; + } }