From 99bf020f707553601b4830aefe264d54d1f7fbfd Mon Sep 17 00:00:00 2001 From: Tetsutoki Shiozawa Date: Wed, 8 Jun 2016 13:45:47 +0900 Subject: Solve the infinite loop on clearExternalStorageDataSync 5000 msec timeout is set for waiting DefaultContainerService, but it's not working. It's not possible to exit a wait loop even if it takes over 5000 msec. Bug: 29232999 Change-Id: I74a45637e0a3fa5a7b151e6b3dc0b3aaece96d53 --- services/core/java/com/android/server/pm/PackageManagerService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 27ca62af5955..a7bd4ab2f11d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -16341,8 +16341,9 @@ public class PackageManagerService extends IPackageManager.Stub { for (int curUser : users) { long timeout = SystemClock.uptimeMillis() + 5000; synchronized (conn) { - long now = SystemClock.uptimeMillis(); - while (conn.mContainerService == null && now < timeout) { + long now; + while (conn.mContainerService == null && + (now = SystemClock.uptimeMillis()) < timeout) { try { conn.wait(timeout - now); } catch (InterruptedException e) { -- cgit v1.2.3-59-g8ed1b