From a1cf2319a225ccd635506cfc272c4f9e93028177 Mon Sep 17 00:00:00 2001 From: Mohammad Samiul Islam Date: Fri, 31 Jul 2020 11:29:08 +0100 Subject: Put finalized child staged session at correct place in dumpsys Child staged sessions do not get marked as applied or failed individually. We only mark the parent session as such. As such, child staged sessions were being printed as active sessions in dumpsys. Bug: 162518337 Test: used `adb install-multi-package` to create multi package session and manually checked dumpsys that child session gets printed under correct section. Change-Id: I88d41085a49bba6b29502a501af2fa5ab1a9dbae --- .../core/java/com/android/server/pm/PackageInstallerService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index 312dcddd577d..55e7ca8ca838 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -1284,10 +1284,16 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements int N = mSessions.size(); for (int i = 0; i < N; i++) { final PackageInstallerSession session = mSessions.valueAt(i); - if (session.isStagedAndInTerminalState()) { + + // Do not print finalized staged session as active install sessions + final PackageInstallerSession rootSession = session.hasParentSessionId() + ? getSession(session.getParentSessionId()) + : session; + if (rootSession.isStagedAndInTerminalState()) { finalizedSessions.add(session); continue; } + session.dump(pw); pw.println(); } -- cgit v1.2.3-59-g8ed1b