Loading services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +26 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,10 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { @GuardedBy("mLock") private final List<Rollback> mRollbacks; // Apk sessions from a staged session with no matching rollback. @GuardedBy("mLock") private final IntArray mOrphanedApkSessionIds = new IntArray(); private final RollbackStore mRollbackStore; private final Context mContext; Loading Loading @@ -655,6 +659,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // hasn't actually been updated. onPackageReplaced(apexPackageName); } synchronized (mLock) { mOrphanedApkSessionIds.clear(); } mPackageHealthObserver.onBootCompletedAsync(); }); } Loading Loading @@ -865,6 +874,16 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { } } // Check to see if this is the apk session for a staged session for which rollback was // cancelled. synchronized (mLock) { if (mOrphanedApkSessionIds.indexOf(parentSession.getSessionId()) != -1) { Slog.w(TAG, "Not enabling rollback for apk as no matching staged session " + "rollback exists"); return false; } } NewRollback newRollback; synchronized (mLock) { // See if we already have a NewRollback that contains this package Loading Loading @@ -1122,6 +1141,13 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { break; } } if (rollback == null) { // Did not find rollback matching originalSessionId. Slog.e(TAG, "notifyStagedApkSession did not find rollback for session " + originalSessionId + ". Adding orphaned apk session " + apkSessionId); mOrphanedApkSessionIds.add(apkSessionId); } } if (rollback != null) { Loading Loading
services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +26 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,10 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { @GuardedBy("mLock") private final List<Rollback> mRollbacks; // Apk sessions from a staged session with no matching rollback. @GuardedBy("mLock") private final IntArray mOrphanedApkSessionIds = new IntArray(); private final RollbackStore mRollbackStore; private final Context mContext; Loading Loading @@ -655,6 +659,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { // hasn't actually been updated. onPackageReplaced(apexPackageName); } synchronized (mLock) { mOrphanedApkSessionIds.clear(); } mPackageHealthObserver.onBootCompletedAsync(); }); } Loading Loading @@ -865,6 +874,16 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { } } // Check to see if this is the apk session for a staged session for which rollback was // cancelled. synchronized (mLock) { if (mOrphanedApkSessionIds.indexOf(parentSession.getSessionId()) != -1) { Slog.w(TAG, "Not enabling rollback for apk as no matching staged session " + "rollback exists"); return false; } } NewRollback newRollback; synchronized (mLock) { // See if we already have a NewRollback that contains this package Loading Loading @@ -1122,6 +1141,13 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { break; } } if (rollback == null) { // Did not find rollback matching originalSessionId. Slog.e(TAG, "notifyStagedApkSession did not find rollback for session " + originalSessionId + ". Adding orphaned apk session " + apkSessionId); mOrphanedApkSessionIds.add(apkSessionId); } } if (rollback != null) { Loading