Use Duration instead of int for HEARTBEAT_INTERVAL The HEARTBEAT_INTERVAL was an int with the implicit unit of seconds. Duration is an amount of time that can be accessed using any time unit as needed by the caller. Change-Id: I40efed491004cd2d2e275bf0fe5dc2443b7d3d3a
diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java index 94b908b..4f2ea21 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java +++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java
@@ -31,6 +31,7 @@ import com.google.gerrit.server.config.GerritInstanceId; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; +import java.time.Duration; import java.util.Arrays; import java.util.Collections; import java.util.concurrent.ScheduledExecutorService; @@ -55,7 +56,7 @@ } private static final Long SECONDS_FOR_STALE_HEARTBEAT = 30L; - private static final int HEARTBEAT_INTERVAL = 2; + private static final Duration HEARTBEAT_INTERVAL = Duration.ofSeconds(2); private static final String RECLAIM_LOCK_PREFIX = "RECLAIM"; private final DatabaseClient dbClient; private final String gerritInstanceId; @@ -101,7 +102,7 @@ token = transactionRunner.getCommitTimestamp(); heartbeatTask = heartbeatExecutor.scheduleAtFixedRate( - this::heartbeat, 0, HEARTBEAT_INTERVAL, TimeUnit.SECONDS); + this::heartbeat, 0, HEARTBEAT_INTERVAL.toSeconds(), TimeUnit.SECONDS); logger.atFine().log("Locked %s %s.", projectName, refName); } catch (Exception e) { Throwable cause = e.getCause(); @@ -168,7 +169,7 @@ if (success) { token = transactionRunner.getCommitTimestamp(); heartbeatExecutor.scheduleAtFixedRate( - this::heartbeat, 0, HEARTBEAT_INTERVAL, TimeUnit.SECONDS); + this::heartbeat, 0, HEARTBEAT_INTERVAL.toSeconds(), TimeUnit.SECONDS); logger.atFine().log("Reclaimed lock for %s %s.", projectName, refName); } return success;