From eb1b65a976d143810acab199aecd17b987661973 Mon Sep 17 00:00:00 2001 From: Winson Date: Mon, 2 Nov 2015 10:29:08 -0800 Subject: Prevent and log invalid cache entries. Bug: 25413518 Change-Id: Id0a7384eccd25ba766feb0c568b4c16db2b6f6c8 --- .../src/com/android/systemui/recents/model/RecentsTaskLoader.java | 5 +++++ .../src/com/android/systemui/recents/model/TaskKeyLruCache.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java index 71e39573537a..bba453a09172 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java @@ -560,6 +560,11 @@ public class RecentsTaskLoader { ActivityInfo activityInfo = mActivityInfoCache.get(cn); if (activityInfo == null) { activityInfo = ssp.getActivityInfo(cn, taskKey.userId); + if (cn == null || activityInfo == null) { + Log.e(TAG, "Unexpected null component name or activity info: " + cn + ", " + + activityInfo); + return null; + } mActivityInfoCache.put(cn, activityInfo); } return activityInfo; diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskKeyLruCache.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskKeyLruCache.java index 6d11f1463f25..67a6a9f1d514 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskKeyLruCache.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskKeyLruCache.java @@ -16,6 +16,7 @@ package com.android.systemui.recents.model; +import android.util.Log; import android.util.LruCache; import android.util.SparseArray; @@ -29,6 +30,8 @@ import android.util.SparseArray; */ public class TaskKeyLruCache { + private static final String TAG = "TaskKeyLruCache"; + private final SparseArray mKeys = new SparseArray<>(); private final LruCache mCache; @@ -71,6 +74,10 @@ public class TaskKeyLruCache { /** Puts an entry in the cache for a specific key. */ final void put(Task.TaskKey key, V value) { + if (key == null || value == null) { + Log.e(TAG, "Unexpected null key or value: " + key + ", " + value); + return; + } mKeys.put(key.id, key); mCache.put(key.id, value); } -- cgit v1.2.3-59-g8ed1b