summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-03-20 04:15:21 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-20 04:15:21 -0700
commitbebb3010e6ef8411263a1e18e12d83fb7441ba6f (patch)
tree4868dee428069cd2e17bb3cc2d6749cc1ca04932
parent2a20688dcb18a3896d1e59036d83d059e9535425 (diff)
parent78596ce701fbfc1893dd1ff9edf12ac7d22f8b48 (diff)
Merge "Prevent IndexOutOfBoundsException when trimming the battery history directory" into main
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryHistoryDirectory.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/power/stats/BatteryHistoryDirectory.java b/services/core/java/com/android/server/power/stats/BatteryHistoryDirectory.java
index 7cd9bdbc662c..b4ca7845ffee 100644
--- a/services/core/java/com/android/server/power/stats/BatteryHistoryDirectory.java
+++ b/services/core/java/com/android/server/power/stats/BatteryHistoryDirectory.java
@@ -505,7 +505,9 @@ public class BatteryHistoryDirectory implements BatteryStatsHistory.BatteryHisto
for (int i = 0; i < mHistoryFiles.size(); i++) {
size += (int) mHistoryFiles.get(i).atomicFile.getBaseFile().length();
}
- while (size > mMaxHistorySize) {
+ // Trim until the directory size is within the limit or there is just one most
+ // recent file left in the directory
+ while (size > mMaxHistorySize && mHistoryFiles.size() > 1) {
BatteryHistoryFile oldest = mHistoryFiles.get(0);
int length = (int) oldest.atomicFile.getBaseFile().length();
oldest.atomicFile.delete();