Use StringBuilder instead of concatenation in SubmoduleOp

Coverity reports a performance issue caused by using the + operator
to concatenate strings within a loop. (See CID 20152) on the coverity
scan project [1].

Refactor it to use a StringBuilder instead.

[1] https://scan.coverity.com/projects/4032

Change-Id: Ib2ee90934e2215639cadc500ae28c9e61f8a9d19
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
index 2b73ff9..3d65fa7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java
@@ -207,11 +207,11 @@
           schema.submoduleSubscriptions().bySubmodule(updatedBranch).toList();
 
       if (!subscribers.isEmpty()) {
-        String msgbuf = msg;
-        if (msgbuf == null) {
-          // Initialize the message buffer
-          msgbuf = "";
-
+        // Initialize the message buffer
+        StringBuilder sb = new StringBuilder();
+        if (msg != null) {
+          sb.append(msg);
+        } else {
           // The first updatedBranch on a cascade event of automatic
           // updates of repos is added to updatedSubscribers set so
           // if we face a situation having
@@ -227,8 +227,8 @@
                 && (c.getStatusCode() == CommitMergeStatus.CLEAN_MERGE
                     || c.getStatusCode() == CommitMergeStatus.CLEAN_PICK
                     || c.getStatusCode() == CommitMergeStatus.CLEAN_REBASE)) {
-              msgbuf += "\n";
-              msgbuf += c.getFullMessage();
+              sb.append("\n")
+                .append(c.getFullMessage());
             }
           }
         }
@@ -246,7 +246,7 @@
 
             Map<Branch.NameKey, String> paths = new HashMap<>(1);
               paths.put(updatedBranch, s.getPath());
-              updateGitlinks(s.getSuperProject(), myRw, modules, paths, msgbuf);
+              updateGitlinks(s.getSuperProject(), myRw, modules, paths, sb.toString());
             }
           } catch (SubmoduleException e) {
               log.warn("Cannot update gitlinks for " + s + " due to " + e.getMessage());