commit | 6c65bf119c8f846a67f8123d3abd935ff53b0b02 | [log] [tgz] |
---|---|---|
author | JW Wang <wangchun@google.com> | Thu Mar 31 10:06:06 2022 +0800 |
committer | Justin Dunlap <justindunlap@google.com> | Mon May 02 21:29:56 2022 +0000 |
tree | f8f8601e5dfd42fb465be1980533f5b46f40a961 | |
parent | 9f80a96941de44a30243318c1b35dfbc6cf8fa35 [diff] |
Fix NPE NPE happens when there is an orphaned session which we've tried to prevent in all cases. Log an error message if this situation happens. Bug: 227342978 Test: atest CtsRootPackageInstallerHostTestCases Change-Id: Ia21323926bd9db1a6f05461904deb45b4c3dd0bc (cherry picked from commit 07e31dfb1efabc8110d64819f26a06e12a35e020) Merged-In: Ia21323926bd9db1a6f05461904deb45b4c3dd0bc (cherry picked from commit e58049a3ea2c056b999c281c7031f9e16e42f809) Merged-In: Ia21323926bd9db1a6f05461904deb45b4c3dd0bc
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index 557c417..813807b 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -346,7 +346,10 @@ // Their staging dirs will be removed too PackageInstallerSession root = !session.hasParentSessionId() ? session : mSessions.get(session.getParentSessionId()); - if (!root.isDestroyed()) { + if (root == null) { + Slog.e(TAG, "freeStageDirs: found an orphaned session: " + + session.sessionId + " parent=" + session.getParentSessionId()); + } else if (!root.isDestroyed()) { root.abandon(); } } else {