summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Varun Shah <varunshah@google.com> 2021-01-29 23:51:26 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2021-01-29 23:51:26 +0000
commitacb36aaddaa87707b3861277dfda0113283d76bb (patch)
tree06f419999e355b89224540b47f055a9bfd72233b
parentac37ade768529d3ba313e9bf760a6ae25a8b2f00 (diff)
parent98fc96fc652598fc3d58b001cc791a70da183d2d (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.java6
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: