Prevent NPE when syncing recent tasks
Temporary fix to unblock GTS tests for ryu.
Bug: 27686987
Change-Id: Id9398cd8615bf90aecf02051f26db10f39d598b0
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java
index 7209814..91f2aa8 100644
--- a/services/core/java/com/android/server/am/RecentTasks.java
+++ b/services/core/java/com/android/server/am/RecentTasks.java
@@ -116,6 +116,7 @@
// on file when we loaded them.
if (mPersistedTaskIds.get(userId) == null) {
mPersistedTaskIds.put(userId, mTaskPersister.loadPersistedTaskIdsForUser(userId));
+ Slog.i(TAG, "Loaded persisted task ids for user " + userId);
}
}
@@ -146,6 +147,12 @@
TaskRecord task = get(i);
if (task.isPersistable && (task.stack == null || !task.stack.isHomeStack())) {
// Set of persisted taskIds for task.userId should not be null here
+ // TODO Investigate why it can happen. For now initialize with an empty set
+ if (mPersistedTaskIds.get(task.userId) == null) {
+ Slog.wtf(TAG, "No task ids found for userId " + task.userId + ". task=" + task
+ + " mPersistedTaskIds=" + mPersistedTaskIds);
+ mPersistedTaskIds.put(task.userId, new SparseBooleanArray());
+ }
mPersistedTaskIds.get(task.userId).put(task.taskId, true);
}
}