diff options
| -rw-r--r-- | core/java/android/accounts/AccountManagerService.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/java/android/accounts/AccountManagerService.java b/core/java/android/accounts/AccountManagerService.java index e6eaf71634aa..2c99f14d2554 100644 --- a/core/java/android/accounts/AccountManagerService.java +++ b/core/java/android/accounts/AccountManagerService.java @@ -722,6 +722,9 @@ public class AccountManagerService final String[] argsAccountId = {String.valueOf(accountId)}; db.update(TABLE_ACCOUNTS, values, ACCOUNTS_ID + "=?", argsAccountId); db.delete(TABLE_AUTHTOKENS, AUTHTOKENS_ACCOUNTS_ID + "=?", argsAccountId); + synchronized (mCacheLock) { + mAuthTokenCache.remove(account); + } db.setTransactionSuccessful(); } } finally { @@ -1812,6 +1815,11 @@ public class AccountManagerService try { db.execSQL("DELETE from " + TABLE_AUTHTOKENS); db.execSQL("UPDATE " + TABLE_ACCOUNTS + " SET " + ACCOUNTS_PASSWORD + " = ''"); + + synchronized (mCacheLock) { + mAuthTokenCache = new HashMap<Account, HashMap<String, String>>(); + } + db.setTransactionSuccessful(); } finally { db.endTransaction(); |