summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-27 07:00:14 +0200
committerPaul Buetow <paul@buetow.org>2026-03-27 07:00:14 +0200
commit29252fbc7803e4a660332524d5811ff942e2b0bc (patch)
tree93b4e42dc44dc6698743b8817718e5eba97115e1 /src
parent1cadb8e0ce613bc9327393a95059b598187417e9 (diff)
Fix detached Raft client initialization
Diffstat (limited to 'src')
-rw-r--r--src/main/java/protocols/implementations/VSRaftProtocol.java4
-rw-r--r--src/test/java/protocols/implementations/VSRaftProtocolTest.java10
2 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/protocols/implementations/VSRaftProtocol.java b/src/main/java/protocols/implementations/VSRaftProtocol.java
index 1c5fed0..3741e54 100644
--- a/src/main/java/protocols/implementations/VSRaftProtocol.java
+++ b/src/main/java/protocols/implementations/VSRaftProtocol.java
@@ -77,7 +77,9 @@ public class VSRaftProtocol extends VSAbstractProtocol {
public void onClientInit() {
initLong("electionTimeout", 4000, "Base election timeout", "ms");
initLong("electionJitter", 2000, "Election timeout jitter", "ms");
- resetElectionTimeout();
+ if (process != null) {
+ resetElectionTimeout();
+ }
}
/* (non-Javadoc)
diff --git a/src/test/java/protocols/implementations/VSRaftProtocolTest.java b/src/test/java/protocols/implementations/VSRaftProtocolTest.java
index abfc2d4..1cc25fd 100644
--- a/src/test/java/protocols/implementations/VSRaftProtocolTest.java
+++ b/src/test/java/protocols/implementations/VSRaftProtocolTest.java
@@ -149,6 +149,16 @@ class VSRaftProtocolTest {
}
@Test
+ void testOnClientInitWithoutProcessOnlyRegistersPrefs() {
+ VSRaftProtocol detachedProtocol = new VSRaftProtocol();
+
+ detachedProtocol.onClientInit();
+
+ assertEquals(4000L, detachedProtocol.getLong("electionTimeout"));
+ assertEquals(2000L, detachedProtocol.getLong("electionJitter"));
+ }
+
+ @Test
void testOnClientScheduleStartsElectionAfterTimeout() throws Exception {
protocol.currentContextIsServer(false);
protocol.onClientInit();