diff options
| -rw-r--r-- | services/core/java/com/android/server/accounts/TokenCache.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/accounts/TokenCache.java b/services/core/java/com/android/server/accounts/TokenCache.java index be91f9831113..2af2f38d8ba7 100644 --- a/services/core/java/com/android/server/accounts/TokenCache.java +++ b/services/core/java/com/android/server/accounts/TokenCache.java @@ -125,7 +125,7 @@ import java.util.Objects; * This is recursive, but it won't spiral out of control because LruCache is * thread safe and the Evictor can only be removed once. */ - Evictor evictor = mTokenEvictors.remove(oldVal.token); + Evictor evictor = mTokenEvictors.remove(new Pair<>(k.account.type, oldVal.token)); if (evictor != null) { evictor.evict(); } @@ -134,12 +134,13 @@ import java.util.Objects; public void putToken(Key k, Value v) { // Prepare for removal by token string. - Evictor tokenEvictor = mTokenEvictors.get(v.token); + Pair<String, String> mapKey = new Pair<>(k.account.type, v.token); + Evictor tokenEvictor = mTokenEvictors.get(mapKey); if (tokenEvictor == null) { tokenEvictor = new Evictor(); } tokenEvictor.add(k); - mTokenEvictors.put(new Pair<>(k.account.type, v.token), tokenEvictor); + mTokenEvictors.put(mapKey, tokenEvictor); // Prepare for removal by associated account. Evictor accountEvictor = mAccountEvictors.get(k.account); |