From 5b62b2dba8151c6ce8b1e347823549372a9ac098 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Fri, 11 Nov 2022 17:29:17 +0100 Subject: [PATCH] Fix bug in precondition check ensureNoOtherFromModelGroupIsRecording The check used model objects from the model group, which might have been old serialized objects with an outdated state. The model from the model group is now updated with the current state from the recorder before performing the check. --- .../main/java/ctbrec/recorder/RecordingPreconditions.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java b/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java index 6bb431cb..3fa1fd1e 100644 --- a/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java +++ b/common/src/main/java/ctbrec/recorder/RecordingPreconditions.java @@ -24,8 +24,8 @@ public class RecordingPreconditions { private static final Logger LOG = LoggerFactory.getLogger(RecordingPreconditions.class); - private Config config; - private NextGenLocalRecorder recorder; + private final Config config; + private final NextGenLocalRecorder recorder; private long lastPreconditionMessage = 0; @@ -94,6 +94,7 @@ public class RecordingPreconditions { long now = System.currentTimeMillis(); if ((now - lastPreconditionMessage) > TimeUnit.MINUTES.toMillis(1)) { LOG.info("The number of downloads is maxed out"); + lastPreconditionMessage = now; } // check, if we can stop a recording for a model with lower priority Optional lowerPrioRecordingProcess = recordingProcessWithLowerPrio(model.getPriority()); @@ -194,7 +195,7 @@ public class RecordingPreconditions { } private Optional getModelForUrl(String modelUrl) { - return config.getSettings().models.stream() + return recorder.getModels().stream() .filter(m -> Objects.equals(m.getUrl(), modelUrl)) .findFirst(); }