From 35896935a6839b449f2b2b8c13e2b1735e7618ab Mon Sep 17 00:00:00 2001 From: lijilou Date: Mon, 16 Dec 2024 15:31:52 +0800 Subject: PowerStatsLogger: ensure the opend stream is closed when IOException happen. Bug: none Flag: EXEMPT minor optimization Change-Id: Ic035870b886ac13a6c8c38ad484eec2840cc3165 --- .../java/com/android/server/powerstats/PowerStatsLogger.java | 10 ++++++++-- 1 file 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; } } -- cgit v1.2.3-59-g8ed1b