diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-27 13:05:59 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-27 13:05:59 +0200 |
| commit | f55d67d98dddf5861dc4266564863dde4b0b6ed1 (patch) | |
| tree | b87ad04a444b9873cb9ec0ede643772f160e6012 /src/main/java/testing | |
| parent | 29252fbc7803e4a660332524d5811ff942e2b0bc (diff) | |
sr: retune Raft replay for faster reelection
Diffstat (limited to 'src/main/java/testing')
| -rw-r--r-- | src/main/java/testing/HeadlessLoader.java | 49 | ||||
| -rw-r--r-- | src/main/java/testing/HeadlessSimulationRunner.java | 6 |
2 files changed, 46 insertions, 9 deletions
diff --git a/src/main/java/testing/HeadlessLoader.java b/src/main/java/testing/HeadlessLoader.java index a19ec19..de18a93 100644 --- a/src/main/java/testing/HeadlessLoader.java +++ b/src/main/java/testing/HeadlessLoader.java @@ -47,32 +47,32 @@ public class HeadlessLoader { // Copy non-string values from serialized prefs for (String key : serializedPrefs.getIntegerKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initInteger(key, serializedPrefs.getInteger(key)); + newPrefs.setInteger(key, serializedPrefs.getInteger(key)); } } for (String key : serializedPrefs.getBooleanKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initBoolean(key, serializedPrefs.getBoolean(key)); + newPrefs.setBoolean(key, serializedPrefs.getBoolean(key)); } } for (String key : serializedPrefs.getFloatKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initFloat(key, serializedPrefs.getFloat(key)); + newPrefs.setFloat(key, serializedPrefs.getFloat(key)); } } for (String key : serializedPrefs.getColorKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initColor(key, serializedPrefs.getColor(key)); + newPrefs.setColor(key, serializedPrefs.getColor(key)); } } for (String key : serializedPrefs.getVectorKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initVector(key, serializedPrefs.getVector(key)); + newPrefs.setVector(key, serializedPrefs.getVector(key)); } } for (String key : serializedPrefs.getLongKeySet()) { if (!key.startsWith("lang.")) { - newPrefs.initLong(key, serializedPrefs.getLong(key)); + newPrefs.setLong(key, serializedPrefs.getLong(key)); } } @@ -86,6 +86,41 @@ public class HeadlessLoader { // Deserialize simulator simulator.deserialize(serializer, objectInputStream); objectInputStream.close(); + + // Reapply non-localized prefs after deserialization in case the + // simulator reset any persisted numeric values while restoring state. + VSPrefs simulatorPrefs = simulator.getPrefs(); + for (String key : serializedPrefs.getIntegerKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setInteger(key, serializedPrefs.getInteger(key)); + } + } + for (String key : serializedPrefs.getBooleanKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setBoolean(key, serializedPrefs.getBoolean(key)); + } + } + for (String key : serializedPrefs.getFloatKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setFloat(key, serializedPrefs.getFloat(key)); + } + } + for (String key : serializedPrefs.getColorKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setColor(key, serializedPrefs.getColor(key)); + } + } + for (String key : serializedPrefs.getVectorKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setVector(key, serializedPrefs.getVector(key)); + } + } + for (String key : serializedPrefs.getLongKeySet()) { + if (!key.startsWith("lang.")) { + simulatorPrefs.setLong(key, serializedPrefs.getLong(key)); + } + } + simulator.updateFromPrefs(); // Get the visualization using reflection Field vizField = VSSimulator.class.getDeclaredField("simulatorVisualization"); @@ -140,4 +175,4 @@ public class HeadlessLoader { return visualization; } } -}
\ No newline at end of file +} diff --git a/src/main/java/testing/HeadlessSimulationRunner.java b/src/main/java/testing/HeadlessSimulationRunner.java index 6279fa9..5a49487 100644 --- a/src/main/java/testing/HeadlessSimulationRunner.java +++ b/src/main/java/testing/HeadlessSimulationRunner.java @@ -86,7 +86,9 @@ public class HeadlessSimulationRunner { // Get the simulation's configured end time long untilTime = viz.getUntilTime(); - long actualMaxTime = Math.min(maxTime, untilTime); + long prefsUntilTime = simulator.getPrefs().getInteger("sim.seconds") * 1000L; + long actualUntilTime = Math.max(untilTime, prefsUntilTime); + long actualMaxTime = Math.min(maxTime, actualUntilTime); System.out.println("Running simulation for up to " + actualMaxTime + "ms (until time: " + untilTime + "ms)..."); @@ -347,4 +349,4 @@ public class HeadlessSimulationRunner { } } } -}
\ No newline at end of file +} |
