Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d58180b authored by Varun Shah's avatar Varun Shah Committed by Automerger Merge Worker
Browse files

Merge "Fixed to prevent usagestats file corruption when writing" am: 98fc96fc am: acb36aad

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1550659

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia6bf40e6f362f9153cc5331e42af33b814e988d4
parents 40b8fc37 acb36aad
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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: