diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java index d081fe6bd7..414ba5f4ca 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MultiProgressMonitor.java @@ -96,6 +96,29 @@ public class MultiProgressMonitor { } } + synchronized void format(StringBuilder s, boolean first) { + if (count == 0) { + return; + } + + if (!first) { + s.append(','); + } + s.append(' '); + + if (!Strings.isNullOrEmpty(name)) { + s.append(name).append(": "); + } + + if (total == UNKNOWN) { + s.append(count); + } else { + s.append(String.format("%d%% (%d/%d)", + count * 100 / total, + count, total)); + } + } + /** * Indicate that this sub-task is finished. *

@@ -316,32 +339,9 @@ public class MultiProgressMonitor { StringBuilder s = new StringBuilder().append("\r").append(taskName) .append(':'); - if (!tasks.isEmpty()) { - boolean first = true; - for (Task t : tasks) { - int count = t.count; - if (count == 0) { - continue; - } - - if (!first) { - s.append(','); - } else { - first = false; - } - - s.append(' '); - if (!Strings.isNullOrEmpty(t.name)) { - s.append(t.name).append(": "); - } - if (t.total == UNKNOWN) { - s.append(count); - } else { - s.append(String.format("%d%% (%d/%d)", - count * 100 / t.total, - count, t.total)); - } - } + int firstLength = s.length(); + for (Task t : tasks) { + t.format(s, s.length() == firstLength); } if (spinnerState != NO_SPINNER) {