summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author lijilou <lijilou@xiaomi.corp-partner.google.com> 2024-12-16 15:31:52 +0800
committer lijilou <lijilou@xiaomi.corp-partner.google.com> 2024-12-16 16:38:11 +0800
commit35896935a6839b449f2b2b8c13e2b1735e7618ab (patch)
tree1dbed1841d63e8bf6fc954ac46d8c1d6dc95c626
parent2daef7f6cf3ab06149a0fd6aa63b06554c9c4e60 (diff)
PowerStatsLogger: ensure the opend stream is closed when IOException happen.
Bug: none Flag: EXEMPT minor optimization Change-Id: Ic035870b886ac13a6c8c38ad484eec2840cc3165
-rw-r--r--services/core/java/com/android/server/powerstats/PowerStatsLogger.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/powerstats/PowerStatsLogger.java b/services/core/java/com/android/server/powerstats/PowerStatsLogger.java
index e80a86d73f90..4fd026a6dc52 100644
--- a/services/core/java/com/android/server/powerstats/PowerStatsLogger.java
+++ b/services/core/java/com/android/server/powerstats/PowerStatsLogger.java
@@ -285,14 +285,20 @@ public final class PowerStatsLogger extends Handler {
}
private void updateCacheFile(String cacheFilename, byte[] data) {
+ AtomicFile atomicCachedFile = null;
+ FileOutputStream fos = null;
try {
- final AtomicFile atomicCachedFile =
+ atomicCachedFile =
new AtomicFile(new File(mDataStoragePath, cacheFilename));
- final FileOutputStream fos = atomicCachedFile.startWrite();
+ fos = atomicCachedFile.startWrite();
fos.write(data);
atomicCachedFile.finishWrite(fos);
} catch (IOException e) {
Slog.e(TAG, "Failed to write current data to cached file", e);
+ if (fos != null) {
+ atomicCachedFile.failWrite(fos);
+ }
+ return;
}
}