diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index c56f744722565..db8ecf764a3fe 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -3143,14 +3143,15 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { synchronized (mLock) { assertCallerIsOwnerOrRootLocked(); assertPreparedAndNotSealedLocked("removeChildSessionId"); + final int indexOfSession = mChildSessionIds.indexOfKey(sessionId); - if (session != null) { - session.setParentSessionId(SessionInfo.INVALID_ID); - } if (indexOfSession < 0) { // not added in the first place; no-op return; } + if (session != null) { + session.setParentSessionId(SessionInfo.INVALID_ID); + } mChildSessionIds.removeAt(indexOfSession); } } finally {