From dd6f41a574812e3297fe5d8748a02856ee82ab1a Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 27 Mar 2021 17:33:05 +0100 Subject: [PATCH] Fix bug, which could cause recordings to get stuck --- CHANGELOG.md | 4 ++++ .../src/main/java/ctbrec/recorder/NextGenLocalRecorder.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 224a4093..76b7df61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +4.1.2 +======================== +* Fixed bug, which caused recordings to get stuck + 4.1.1 ======================== * Added open in browser to context menu of thumb overviews diff --git a/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java b/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java index d2978436..2064744d 100644 --- a/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/NextGenLocalRecorder.java @@ -150,9 +150,9 @@ public class NextGenLocalRecorder implements Recorder { if (!future.isDone()) { downloadFutureQueue.put(future); } else { - downloadFutureRecordingMap.remove(future); Recording rec = future.get(); Download d = rec.getDownload(); + downloadFutureRecordingMap.remove(future); if (d.isRunning()) { long delay = Math.max(0, Duration.between(Instant.now(), d.getRescheduleTime()).toMillis()); ScheduledFuture rescheduledFuture = downloadPool.schedule(rec, delay, TimeUnit.MILLISECONDS); @@ -182,6 +182,7 @@ public class NextGenLocalRecorder implements Recorder { private void fail(ScheduledFuture future, Exception e) { if (downloadFutureRecordingMap.containsKey(future)) { Recording rec = downloadFutureRecordingMap.remove(future); + deleteIfEmpty(rec); removeRecordingProcess(rec); rec.getDownload().finalizeDownload(); LOG.error("Error while recording stream for model {}", rec.getModel(), e);