StartCommand:  Fix synchronization on non-final field

When all error prone warnings are enabled the SynchronizeOnNonFinalField
bug pattern is reported:

  plugins/replication/src/main/java/com/googlesource/gerrit/plugins/replication/StartCommand.java:103:
  error: [SynchronizeOnNonFinalField] Synchronizing on non-final fields is not safe:
  if the field is ever updated, different threads may end up locking on different objects.
      synchronized (stdout) {
                   ^
    (see https://errorprone.info/bugpattern/SynchronizeOnNonFinalField)

Change-Id: Ib2df20aa28af4edd36ce5b9dfcf7d82c409dab84
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/StartCommand.java b/src/main/java/com/googlesource/gerrit/plugins/replication/StartCommand.java
index 77bc285..20bdf65 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/StartCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/StartCommand.java
@@ -53,6 +53,8 @@
 
   @Inject private ReplicationState.Factory replicationStateFactory;
 
+  private final Object lock = new Object();
+
   @Override
   protected void run() throws Failure {
     if (all && projectPatterns.size() > 0) {
@@ -100,7 +102,7 @@
 
   public void writeStdOutSync(String message) {
     if (wait) {
-      synchronized (stdout) {
+      synchronized (lock) {
         stdout.println(message);
         stdout.flush();
       }
@@ -109,7 +111,7 @@
 
   public void writeStdErrSync(String message) {
     if (wait) {
-      synchronized (stderr) {
+      synchronized (lock) {
         stderr.println(message);
         stderr.flush();
       }