Merge branch 'stable-2.13'

* stable-2.13:
  Resolve username lazily in git over http tasks

Change-Id: Ib247a320d684da5d1e3d011663bbd9ca7d9c347a
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
index c15d6c0..b577475 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
@@ -161,6 +161,7 @@
     private final Object lock = new Object();
     private boolean done;
     private Thread worker;
+    private String fullName;
 
     TaskThunk(final WorkQueue.Executor executor, final Continuation cont,
         final HttpServletRequest req) {
@@ -219,28 +220,33 @@
 
     @Override
     public String toString() {
+
+      if (fullName != null) {
+        return fullName;
+      }
+
+      CurrentUser who = user.get();
+      if (who.isIdentifiedUser()) {
+        String username = who.asIdentifiedUser().getUserName();
+        if (username != null && !username.isEmpty()) {
+          fullName = name + " (" + username + ")";
+          return fullName;
+        }
+      }
+
       return name;
     }
 
     private String generateName(HttpServletRequest req) {
-      String userName = "";
-
-      CurrentUser who = user.get();
-      if (who.isIdentifiedUser()) {
-        String name = who.asIdentifiedUser().getUserName();
-        if (name != null && !name.isEmpty()) {
-          userName = " (" + name + ")";
-        }
-      }
 
       String uri = req.getServletPath();
       Matcher m = URI_PATTERN.matcher(uri);
       if (m.matches()) {
         String path = m.group(1);
         String cmd = m.group(2);
-        return cmd + " " + path + userName;
+        return cmd + " " + path;
       }
-      return req.getMethod() + " " + uri + userName;
+      return req.getMethod() + " " + uri;
     }
   }
 }