ReplicationFileBasedConfig: Fix setting default sshConnectionTimeout

The default value did not get set when the replication config did not
exist, was empty, or was invalid. This is not really a problem since
if there is no config, no SSH connections are made anyway.

A more serious issue is that the value was read with minutes as the
default time unit, but then converted to milliseconds using seconds as
the time unit, which resulted in an incorrect value.

Change-Id: I64906e29acb56f0f53b432db61d2707dfe1963d3
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
index e641be2..db9f35d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java
@@ -13,7 +13,7 @@
 // limitations under the License.
 package com.googlesource.gerrit.plugins.replication;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toList;
 
@@ -44,12 +44,14 @@
 @Singleton
 public class ReplicationFileBasedConfig implements ReplicationConfig {
   private static final Logger log = LoggerFactory.getLogger(ReplicationFileBasedConfig.class);
+  private static final int DEFAULT_SSH_CONNECTION_TIMEOUT_MS = 2 * 60 * 1000; // 2 minutes
+
   private List<Destination> destinations;
   private Path cfgPath;
   private boolean replicateAllOnPluginStart;
   private boolean defaultForceUpdate;
   private int sshCommandTimeout;
-  private int sshConnectionTimeout;
+  private int sshConnectionTimeout = DEFAULT_SSH_CONNECTION_TIMEOUT_MS;
   private final FileBasedConfig config;
 
   @Inject
@@ -113,8 +115,13 @@
         (int) ConfigUtil.getTimeUnit(config, "gerrit", null, "sshCommandTimeout", 0, SECONDS);
     sshConnectionTimeout =
         (int)
-            SECONDS.toMillis(
-                ConfigUtil.getTimeUnit(config, "gerrit", null, "sshConnectionTimeout", 2, MINUTES));
+            ConfigUtil.getTimeUnit(
+                config,
+                "gerrit",
+                null,
+                "sshConnectionTimeout",
+                DEFAULT_SSH_CONNECTION_TIMEOUT_MS,
+                MILLISECONDS);
 
     ImmutableList.Builder<Destination> dest = ImmutableList.builder();
     for (RemoteConfig c : allRemotes(config)) {