Fix for issue 2016 ssh keys not flushed

ssh keys that are added and deleted via the command line command
set-account username --add-ssh-key don't take effect until after
the caches have been flushed manually. This is cause by the fact
that account.getUserName returns null.

Change-Id: I23e66d5734f21bb5e378cfb99d4507379fc9334b
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetAccountCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetAccountCommand.java
index a3e9d6e..c938891 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetAccountCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetAccountCommand.java
@@ -136,6 +136,13 @@
     boolean accountUpdated = false;
     boolean sshKeysUpdated = false;
 
+    ResultSet<AccountExternalId> ids = db.accountExternalIds().byAccount(id);
+    for (AccountExternalId extId : ids) {
+      if (extId.isScheme(AccountExternalId.SCHEME_USERNAME)) {
+        account.setUserName(extId.getSchemeRest());
+      }
+    }
+
     for (String email : addEmails) {
       link(id, email);
     }