diff options
author | David Pursehouse <dpursehouse@collab.net> | 2019-07-18 11:36:49 +0900 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2019-07-18 12:44:31 +0900 |
commit | 0df288afccb53b7abbe4f2ee90f68c80e9dcd2c7 (patch) | |
tree | 8204484861a663b03a7e3bfe032995f6c4a9f8af | |
parent | 7f94fed1b567713a629f7621ff2c511767e448ab (diff) |
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
-rw-r--r-- | src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationFileBasedConfig.java | 15 |
1 files changed, 11 insertions, 4 deletions
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 @@ import org.slf4j.LoggerFactory; @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 @@ public class ReplicationFileBasedConfig implements ReplicationConfig { (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)) { |