summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <dpursehouse@collab.net>2019-07-18 11:36:49 +0900
committerDavid Pursehouse <dpursehouse@collab.net>2019-07-18 12:44:31 +0900
commit0df288afccb53b7abbe4f2ee90f68c80e9dcd2c7 (patch)
tree8204484861a663b03a7e3bfe032995f6c4a9f8af
parent7f94fed1b567713a629f7621ff2c511767e448ab (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.java15
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)) {