Loading services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +3 −6 Original line number Original line Diff line number Diff line Loading @@ -515,6 +515,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { if (mRollbackLifetimeDurationInMillis < 0) { if (mRollbackLifetimeDurationInMillis < 0) { mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS; mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS; } } Slog.d(TAG, "mRollbackLifetimeDurationInMillis=" + mRollbackLifetimeDurationInMillis); } } @AnyThread @AnyThread Loading Loading @@ -656,9 +657,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { if (!now.isBefore( if (!now.isBefore( rollbackTimestamp rollbackTimestamp .plusMillis(mRollbackLifetimeDurationInMillis))) { .plusMillis(mRollbackLifetimeDurationInMillis))) { if (LOCAL_LOGV) { Slog.i(TAG, "runExpiration id=" + rollback.info.getRollbackId()); Slog.v(TAG, "runExpiration id=" + rollback.info.getRollbackId()); } iter.remove(); iter.remove(); rollback.delete(mAppDataRollbackHelper); rollback.delete(mAppDataRollbackHelper); } else if (oldest == null || oldest.isAfter(rollbackTimestamp)) { } else if (oldest == null || oldest.isAfter(rollbackTimestamp)) { Loading Loading @@ -1170,9 +1169,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { @WorkerThread @WorkerThread @GuardedBy("rollback.getLock") @GuardedBy("rollback.getLock") private void makeRollbackAvailable(Rollback rollback) { private void makeRollbackAvailable(Rollback rollback) { if (LOCAL_LOGV) { Slog.i(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId()); Slog.v(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId()); } rollback.makeAvailable(); rollback.makeAvailable(); // TODO(zezeozue): Provide API to explicitly start observing instead // TODO(zezeozue): Provide API to explicitly start observing instead Loading tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +10 −9 Original line number Original line Diff line number Diff line Loading @@ -487,23 +487,24 @@ public class RollbackTest { // Wait until rollback for app A has expired // Wait until rollback for app A has expired // This will trigger an expiration run that should expire app A but not B // This will trigger an expiration run that should expire app A but not B Thread.sleep(expirationTime / 2); Thread.sleep(expirationTime / 2); RollbackInfo rollback = RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A); getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A); assertThat(rollback).isNull(); Log.i(TAG, "Checking if the rollback for TestApp.A is null"); // Rollback for app B should not be expired // Rollback for app B should not be expired rollback = getUniqueRollbackInfoForPackage( RollbackInfo rollbackB1 = getUniqueRollbackInfoForPackage( rm.getAvailableRollbacks(), TestApp.B); rm.getAvailableRollbacks(), TestApp.B); assertThat(rollback).isNotNull(); assertThat(rollback).packagesContainsExactly( Rollback.from(TestApp.B2).to(TestApp.B1)); // Wait until rollback for app B has expired // Wait until rollback for app B has expired Thread.sleep(expirationTime / 2); Thread.sleep(expirationTime / 2); rollback = getUniqueRollbackInfoForPackage( RollbackInfo rollbackB2 = getUniqueRollbackInfoForPackage( rm.getAvailableRollbacks(), TestApp.B); rm.getAvailableRollbacks(), TestApp.B); // Rollback should be expired by now assertThat(rollback).isNull(); assertThat(rollbackA).isNull(); assertThat(rollbackB1).isNotNull(); assertThat(rollbackB1).packagesContainsExactly( Rollback.from(TestApp.B2).to(TestApp.B1)); assertThat(rollbackB2).isNull(); } finally { } finally { RollbackUtils.forwardTimeBy(-expirationTime); RollbackUtils.forwardTimeBy(-expirationTime); } } Loading Loading
services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +3 −6 Original line number Original line Diff line number Diff line Loading @@ -515,6 +515,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { if (mRollbackLifetimeDurationInMillis < 0) { if (mRollbackLifetimeDurationInMillis < 0) { mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS; mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS; } } Slog.d(TAG, "mRollbackLifetimeDurationInMillis=" + mRollbackLifetimeDurationInMillis); } } @AnyThread @AnyThread Loading Loading @@ -656,9 +657,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { if (!now.isBefore( if (!now.isBefore( rollbackTimestamp rollbackTimestamp .plusMillis(mRollbackLifetimeDurationInMillis))) { .plusMillis(mRollbackLifetimeDurationInMillis))) { if (LOCAL_LOGV) { Slog.i(TAG, "runExpiration id=" + rollback.info.getRollbackId()); Slog.v(TAG, "runExpiration id=" + rollback.info.getRollbackId()); } iter.remove(); iter.remove(); rollback.delete(mAppDataRollbackHelper); rollback.delete(mAppDataRollbackHelper); } else if (oldest == null || oldest.isAfter(rollbackTimestamp)) { } else if (oldest == null || oldest.isAfter(rollbackTimestamp)) { Loading Loading @@ -1170,9 +1169,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { @WorkerThread @WorkerThread @GuardedBy("rollback.getLock") @GuardedBy("rollback.getLock") private void makeRollbackAvailable(Rollback rollback) { private void makeRollbackAvailable(Rollback rollback) { if (LOCAL_LOGV) { Slog.i(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId()); Slog.v(TAG, "makeRollbackAvailable id=" + rollback.info.getRollbackId()); } rollback.makeAvailable(); rollback.makeAvailable(); // TODO(zezeozue): Provide API to explicitly start observing instead // TODO(zezeozue): Provide API to explicitly start observing instead Loading
tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +10 −9 Original line number Original line Diff line number Diff line Loading @@ -487,23 +487,24 @@ public class RollbackTest { // Wait until rollback for app A has expired // Wait until rollback for app A has expired // This will trigger an expiration run that should expire app A but not B // This will trigger an expiration run that should expire app A but not B Thread.sleep(expirationTime / 2); Thread.sleep(expirationTime / 2); RollbackInfo rollback = RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A); getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A); assertThat(rollback).isNull(); Log.i(TAG, "Checking if the rollback for TestApp.A is null"); // Rollback for app B should not be expired // Rollback for app B should not be expired rollback = getUniqueRollbackInfoForPackage( RollbackInfo rollbackB1 = getUniqueRollbackInfoForPackage( rm.getAvailableRollbacks(), TestApp.B); rm.getAvailableRollbacks(), TestApp.B); assertThat(rollback).isNotNull(); assertThat(rollback).packagesContainsExactly( Rollback.from(TestApp.B2).to(TestApp.B1)); // Wait until rollback for app B has expired // Wait until rollback for app B has expired Thread.sleep(expirationTime / 2); Thread.sleep(expirationTime / 2); rollback = getUniqueRollbackInfoForPackage( RollbackInfo rollbackB2 = getUniqueRollbackInfoForPackage( rm.getAvailableRollbacks(), TestApp.B); rm.getAvailableRollbacks(), TestApp.B); // Rollback should be expired by now assertThat(rollback).isNull(); assertThat(rollbackA).isNull(); assertThat(rollbackB1).isNotNull(); assertThat(rollbackB1).packagesContainsExactly( Rollback.from(TestApp.B2).to(TestApp.B1)); assertThat(rollbackB2).isNull(); } finally { } finally { RollbackUtils.forwardTimeBy(-expirationTime); RollbackUtils.forwardTimeBy(-expirationTime); } } Loading