diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index d8b7c2eb5d4cf..fa8c48bdc7f78 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -1170,7 +1170,7 @@ public class SyncManager { } private void removeSyncsForAuthority(EndPoint info, String why) { - mLogger.log("removeSyncsForAuthority: ", info); + mLogger.log("removeSyncsForAuthority: ", info, why); verifyJobScheduler(); List ops = getAllPendingSyncs(); for (SyncOperation op: ops) { diff --git a/services/core/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java index c7a3f4b173c30..e09c661c627b0 100644 --- a/services/core/java/com/android/server/content/SyncStorageEngine.java +++ b/services/core/java/com/android/server/content/SyncStorageEngine.java @@ -1027,7 +1027,7 @@ public class SyncStorageEngine { * Called when the set of account has changed, given the new array of * active accounts. */ - public void removeStaleAccounts(@Nullable Account[] accounts, int userId) { + public void removeStaleAccounts(@Nullable Account[] currentAccounts, int userId) { synchronized (mAuthorities) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Slog.v(TAG, "Updating for new accounts..."); @@ -1036,9 +1036,11 @@ public class SyncStorageEngine { Iterator accIt = mAccounts.values().iterator(); while (accIt.hasNext()) { AccountInfo acc = accIt.next(); - if ((accounts == null) || ( - (acc.accountAndUser.userId == userId) - && !ArrayUtils.contains(accounts, acc.accountAndUser.account))) { + if (acc.accountAndUser.userId != userId) { + continue; // Irrelevant user. + } + if ((currentAccounts == null) + || !ArrayUtils.contains(currentAccounts, acc.accountAndUser.account)) { // This account no longer exists... if (Log.isLoggable(TAG, Log.VERBOSE)) { Slog.v(TAG, "Account removed: " + acc.accountAndUser);