Fix eviction order when linking new external ids

When an account is linked to another external id at login, the cache
invalidation was made too early and the cache and index were reloaded
with a stale entry.

This would have impacted users linking other external ids
that ended up having an inconsistent cache state:
- accounts by id were correct, because external ids where loaded from DB
- accounts by name were stale, because external ids where loaded from index

With this fix, all the caches are consistent and the reindex happens
at the right time, when the new external ids has been linked.

Bug: Issue 5055
Change-Id: I9ca07d10597db482d8a0d0cb4ce19f99ddc19b10
This commit is contained in:
Luca Milanesio
2016-12-03 23:43:55 +00:00
parent 296fbd22ef
commit 96e0d7fd8b

View File

@@ -396,8 +396,8 @@ public class AccountManager {
if (who.getEmailAddress() != null) {
byEmailCache.evict(who.getEmailAddress());
byIdCache.evict(to);
}
byIdCache.evict(to);
}
return new AuthResult(to, key, false);