diff options
| author | 2021-01-29 23:51:26 +0000 | |
|---|---|---|
| committer | 2021-01-29 23:51:26 +0000 | |
| commit | acb36aaddaa87707b3861277dfda0113283d76bb (patch) | |
| tree | 06f419999e355b89224540b47f055a9bfd72233b | |
| parent | ac37ade768529d3ba313e9bf760a6ae25a8b2f00 (diff) | |
| parent | 98fc96fc652598fc3d58b001cc791a70da183d2d (diff) | |
Merge "Fixed to prevent usagestats file corruption when writing" am: 98fc96fc65
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1550659
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ic8cff49d1ea647f0a2ec16ba3eed7a4f54c091d1
| -rw-r--r-- | services/usage/java/com/android/server/usage/UsageStatsDatabase.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java index 9d48955c87be..e5672081464e 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java +++ b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java @@ -1025,6 +1025,8 @@ public class UsageStatsDatabase { writeLocked(fos, stats, version, packagesTokenData); file.finishWrite(fos); fos = null; + } catch (Exception e) { + // Do nothing. Exception has already been handled. } finally { // When fos is null (successful write), this will no-op file.failWrite(fos); @@ -1032,7 +1034,7 @@ public class UsageStatsDatabase { } private static void writeLocked(OutputStream out, IntervalStats stats, int version, - PackagesTokenData packagesTokenData) throws RuntimeException { + PackagesTokenData packagesTokenData) throws Exception { switch (version) { case 1: case 2: @@ -1044,6 +1046,7 @@ public class UsageStatsDatabase { UsageStatsProto.write(out, stats); } catch (Exception e) { Slog.e(TAG, "Unable to write interval stats to proto.", e); + throw e; } break; case 5: @@ -1052,6 +1055,7 @@ public class UsageStatsDatabase { UsageStatsProtoV2.write(out, stats); } catch (Exception e) { Slog.e(TAG, "Unable to write interval stats to proto.", e); + throw e; } break; default: |