diff --git a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java index 6383ed873e592836df221dc71791c4f01844e85b..a49ad9863c5f4fe2b01125688fcd788ec1cdcc55 100644 --- a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java +++ b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java @@ -618,6 +618,7 @@ public class DeviceIdleController extends SystemService * List of end times for app-IDs that are temporarily marked as being allowed to access * the network and acquire wakelocks. Times are in milliseconds. */ + @GuardedBy("this") private final SparseArray<Pair<MutableLong, String>> mTempWhitelistAppIdEndTimes = new SparseArray<>(); @@ -4999,7 +5000,9 @@ public class DeviceIdleController extends SystemService if (!DumpUtils.checkDumpPermission(getContext(), TAG, pw)) { return -1; } - dumpTempWhitelistSchedule(pw, false); + synchronized (this) { + dumpTempWhitelistScheduleLocked(pw, false); + } } } else if ("except-idle-whitelist".equals(cmd)) { getContext().enforceCallingOrSelfPermission( @@ -5283,7 +5286,7 @@ public class DeviceIdleController extends SystemService pw.println(); } } - dumpTempWhitelistSchedule(pw, true); + dumpTempWhitelistScheduleLocked(pw, true); size = mTempWhitelistAppIdArray != null ? mTempWhitelistAppIdArray.length : 0; if (size > 0) { @@ -5411,7 +5414,8 @@ public class DeviceIdleController extends SystemService } } - void dumpTempWhitelistSchedule(PrintWriter pw, boolean printTitle) { + @GuardedBy("this") + void dumpTempWhitelistScheduleLocked(PrintWriter pw, boolean printTitle) { final int size = mTempWhitelistAppIdEndTimes.size(); if (size > 0) { String prefix = "";