summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-08-04 13:56:49 -0700
committerShawn O. Pearce <sop@google.com>2010-08-04 13:56:49 -0700
commit6cbee9cb644753ece51e33d59aaf17ccc1ac8497 (patch)
treeeb01a6b73a30a8c3cc701fe6261de70b05b3b1ad
parent5e8dbd4f7eb07011c7d436a87a7d1c57634153f5 (diff)
Search username cache before database by name
If the input string conforms to our username pattern, search the username cache as it will be quicker than looking at the database for a full name substring, and probably is going to match an account, especially in small group settings where people know each other's local usernames. Change-Id: I827f59d9c0fc9ce5b515b9611561d718733036d2 Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
index f1eb2e0b86..e738c6fab9 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
@@ -61,15 +61,18 @@ public class AccountResolver {
return byId.get(Account.Id.parse(nameOrEmail)).getAccount();
}
+ if (nameOrEmail.matches(Account.USER_NAME_PATTERN)) {
+ Account who = findByUserName(nameOrEmail);
+ if (who != null) {
+ return who;
+ }
+ }
+
Account account = findByNameOrEmail(nameOrEmail);
if (account != null) {
return account;
}
- if (nameOrEmail.matches(Account.USER_NAME_PATTERN)) {
- return findByUserName(nameOrEmail);
- }
-
return null;
}