From 29252fbc7803e4a660332524d5811ff942e2b0bc Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 27 Mar 2026 07:00:14 +0200 Subject: Fix detached Raft client initialization --- src/main/java/protocols/implementations/VSRaftProtocol.java | 4 +++- .../java/protocols/implementations/VSRaftProtocolTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src') 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 @@ -148,6 +148,16 @@ class VSRaftProtocolTest { assertFalse(((VSProtocolScheduleEvent) task.getEvent()).isServerSchedule()); } + @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); -- cgit v1.2.3