Merge "Provide hints when logging GitWeb link generation failure"
diff --git a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddComment.java b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddComment.java
index 36fffd0..5d178a9 100644
--- a/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddComment.java
+++ b/hooks-its/src/main/java/com/googlesource/gerrit/plugins/hooks/workflow/GerritHookFilterAddComment.java
@@ -16,6 +16,8 @@
 
 import java.io.IOException;
 
+import com.google.common.base.Strings;
+import com.google.gerrit.server.config.AnonymousCowardName;
 import com.google.gerrit.server.events.AccountAttribute;
 import com.google.gerrit.server.events.ApprovalAttribute;
 import com.google.gerrit.server.events.ChangeAbandonedEvent;
@@ -32,6 +34,9 @@
   @Inject
   private ItsFacade its;
 
+  @Inject @AnonymousCowardName
+  private String anonymousCowardName;
+
   @Override
   public void doFilter(CommentAddedEvent hook) throws IOException {
     String comment = getComment(hook);
@@ -60,8 +65,16 @@
     return getChangeIdUrl(change) + " | ";
   }
 
+  private String formatAccountAttribute(AccountAttribute who) {
+    if (who != null && !Strings.isNullOrEmpty(who.name)) {
+      return who.name;
+    }
+    return anonymousCowardName;
+  }
+
   private String getComment(ChangeAttribute change, ChangeEvent hook, AccountAttribute who, String what) {
-    return getCommentPrefix(change) + "change " + what + " [by " + who + "]";
+    return getCommentPrefix(change) + "change " + what + " [by "
+        + formatAccountAttribute(who) + "]";
   }
 
   private String getComment(ChangeRestoredEvent hook) {
@@ -96,7 +109,7 @@
     }
 
     comment.append(commentAdded.comment + " ");
-    comment.append("[by " + commentAdded.author + "]");
+    comment.append("[by " + formatAccountAttribute(commentAdded.author) + "]");
     return comment.toString();
   }