summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2014-08-27 10:24:59 -0700
committerJeff Sharkey <jsharkey@android.com>2014-08-27 10:24:59 -0700
commit1c9edafef8b3841e3b0017b8f6ef5f46277e8646 (patch)
treec9b2fce910dc615e0918a878ccb08b547ed38f34
parent780617faa2c9b3dbcb902da06a486149c5bddbb3 (diff)
downloadframeworks_base-1c9edafef8b3841e3b0017b8f6ef5f46277e8646.zip
frameworks_base-1c9edafef8b3841e3b0017b8f6ef5f46277e8646.tar.gz
frameworks_base-1c9edafef8b3841e3b0017b8f6ef5f46277e8646.tar.bz2
Clear pending operation flag when move failed.
Bug: 17298448 Change-Id: I7a4af0f31d3909a9bfb5a2dd7d168015786024e3
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 5093f97..c230434 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -12914,6 +12914,17 @@ public class PackageManagerService extends IPackageManager.Stub {
Bundle extras) throws RemoteException {
Slog.d(TAG, "Install result for move: "
+ PackageManager.installStatusToString(returnCode, msg));
+
+ // We usually have a new package now after the install, but if
+ // we failed we need to clear the pending flag on the original
+ // package object.
+ synchronized (mPackages) {
+ final PackageParser.Package pkg = mPackages.get(packageName);
+ if (pkg != null) {
+ pkg.mOperationPending = false;
+ }
+ }
+
final int status = PackageManager.installStatusToPublicStatus(returnCode);
switch (status) {
case PackageInstaller.STATUS_SUCCESS: