Merge branch 'stable-2.11' into stable-2.12

* stable-2.11:
  AccountManager: Update display name only if it is not null.
  ChangeHookValidator: Fix old revision retrieval for root commit
  InlineEdit: Enable inline comments retrieval in change screen
  BanCommitCommand: Do not use commons.collections

Change-Id: Iddb4b9ea60428a271457c082b77afb787606dc24
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
index dd88b04..cace7ad 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
@@ -329,6 +329,12 @@
     }
 
     public static int findEditParent(JsArray<RevisionInfo> list) {
+      RevisionInfo r = findEditParentRevision(list);
+      return r == null ? -1 : r._number();
+    }
+
+    public static RevisionInfo findEditParentRevision(
+        JsArray<RevisionInfo> list) {
       for (int i = 0; i < list.length(); i++) {
         // edit under revisions?
         RevisionInfo editInfo = list.get(i);
@@ -340,12 +346,12 @@
             String name = parentInfo.name();
             if (name.equals(parentRevision)) {
               // found parent pacth set number
-              return parentInfo._number();
+              return parentInfo;
             }
           }
         }
       }
-      return -1;
+      return null;
     }
 
     public final String id() {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index eabf0e5..2673f49 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -881,7 +881,12 @@
     CallbackGroup group = new CallbackGroup();
     Timestamp lastReply = myLastReply(info);
     if (rev.isEdit()) {
-      loadFileList(b, rev, lastReply, group, null, null);
+      // Comments are filtered for the current revision. Use parent
+      // patch set for edits, as edits themself can never have comments.
+      RevisionInfo p = RevisionInfo.findEditParentRevision(
+          info.revisions().values());
+      List<NativeMap<JsArray<CommentInfo>>> comments = loadComments(p, group);
+      loadFileList(b, rev, lastReply, group, comments, null);
     } else {
       loadDiff(b, rev, lastReply, group);
     }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountManager.java
index 7de3d64..4a9d263 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountManager.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.server.account;
 
+import com.google.common.base.Strings;
 import com.google.gerrit.audit.AuditService;
 import com.google.gerrit.common.TimeUtil;
 import com.google.gerrit.common.data.AccessSection;
@@ -175,7 +176,7 @@
     }
 
     if (!realm.allowsEdit(Account.FieldName.FULL_NAME)
-        && who.getDisplayName() != null
+        && !Strings.isNullOrEmpty(who.getDisplayName())
         && !eq(user.getAccount().getFullName(), who.getDisplayName())) {
       toUpdate = load(toUpdate, user.getAccountId(), db);
       toUpdate.setFullName(who.getDisplayName());
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
index a48260e..6ac5707 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
@@ -564,8 +564,10 @@
         IdentifiedUser user = refControl.getUser().asIdentifiedUser();
 
         String refname = receiveEvent.refName;
-        ObjectId old = receiveEvent.commit.getParent(0);
-
+        ObjectId old = ObjectId.zeroId();
+        if (receiveEvent.commit.getParentCount() > 0) {
+          old = receiveEvent.commit.getParent(0);
+        }
         if (receiveEvent.command.getRefName().startsWith(REFS_CHANGES)) {
           /*
            * If the ref-update hook tries to distinguish behavior between pushes to
diff --git a/gerrit-sshd/BUCK b/gerrit-sshd/BUCK
index dcff98e..5a7b539 100644
--- a/gerrit-sshd/BUCK
+++ b/gerrit-sshd/BUCK
@@ -20,7 +20,6 @@
     '//lib:jsch',
     '//lib/auto:auto-value',
     '//lib/commons:codec',
-    '//lib/commons:collections',
     '//lib/guice:guice',
     '//lib/guice:guice-assistedinject',
     '//lib/guice:guice-servlet',  # SSH should not depend on servlet
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/BanCommitCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/BanCommitCommand.java
index ec8b94d..f78b4df 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/BanCommitCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/BanCommitCommand.java
@@ -28,7 +28,6 @@
 import com.google.gerrit.sshd.SshCommand;
 import com.google.inject.Inject;
 
-import org.apache.commons.collections.CollectionUtils;
 import org.eclipse.jgit.lib.ObjectId;
 import org.kohsuke.args4j.Argument;
 import org.kohsuke.args4j.Option;
@@ -77,7 +76,7 @@
   }
 
   private void printCommits(List<String> commits, String message) {
-    if (CollectionUtils.isNotEmpty(commits)) {
+    if (commits != null && !commits.isEmpty()) {
       stdout.print(message + ":\n");
       stdout.print(Joiner.on(",\n").join(commits));
       stdout.print("\n\n");