diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index 7c8515b5e33e4..4767d3a4c0650 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -1461,8 +1461,9 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements private TreeMap> mSessionMap; private final Comparator mSessionCreationComparator = - Comparator.comparingLong((PackageInstallerSession sess) -> sess.createdMillis) - .thenComparingInt(sess -> sess.sessionId); + Comparator.comparingLong( + (PackageInstallerSession sess) -> sess != null ? sess.createdMillis : -1) + .thenComparingInt(sess -> sess != null ? sess.sessionId : -1); ParentChildSessionMap() { mSessionMap = new TreeMap<>(mSessionCreationComparator); @@ -1500,10 +1501,12 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements for (Map.Entry> entry : mSessionMap.entrySet()) { PackageInstallerSession parentSession = entry.getKey(); - pw.print(tag + " "); - parentSession.dump(pw); - pw.println(); - pw.increaseIndent(); + if (parentSession != null) { + pw.print(tag + " "); + parentSession.dump(pw); + pw.println(); + pw.increaseIndent(); + } for (PackageInstallerSession childSession : entry.getValue()) { pw.print(tag + " Child ");