diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/StagingManager.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java index 515225b1d3be..6cd66c642a06 100644 --- a/services/core/java/com/android/server/pm/StagingManager.java +++ b/services/core/java/com/android/server/pm/StagingManager.java @@ -970,19 +970,19 @@ public class StagingManager { // name and the session we are checking is not a parent session either. continue; } - - // From here on, stagedSession is a non-parent active staged session - // Check if stagedSession has an active parent session or not if (stagedSession.hasParentSessionId()) { int parentId = stagedSession.getParentSessionId(); PackageInstallerSession parentSession = mStagedSessions.get(parentId); - if (parentSession == null || parentSession.isStagedAndInTerminalState()) { + if (parentSession == null || parentSession.isStagedAndInTerminalState() + || parentSession.isDestroyed()) { // Parent session has been abandoned or terminated already continue; } } + // From here on, stagedSession is a non-parent active staged session + // Check if session is one of the active sessions if (session.sessionId == stagedSession.sessionId) { Slog.w(TAG, "Session " + session.sessionId + " is already staged"); |