From 51cf1bcbc6c2b25c76f859510f63963cf00abbb6 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Thu, 20 Nov 2025 11:45:21 +0100 Subject: [PATCH] openvidu-server: fix ForkJoinPool not being autoclosable now --- .../recording/service/SingleStreamRecordingService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java index ef1e2a97c..4f7cbc8e9 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java @@ -165,7 +165,8 @@ public class SingleStreamRecordingService extends RecordingService { }); final CountDownLatch stoppedCountDown = new CountDownLatch(wrappers.size()); - try (ForkJoinPool customThreadPool = new ForkJoinPool(4)) { + ForkJoinPool customThreadPool = new ForkJoinPool(4); + try { customThreadPool.submit(() -> wrappers.parallelStream().forEach(wrapper -> { this.stopRecorderEndpointOfPublisherEndpoint(recording.getId(), wrapper.getStreamId(), stoppedCountDown, kmsDisconnectionTime); @@ -173,8 +174,11 @@ public class SingleStreamRecordingService extends RecordingService { customThreadPool.shutdown(); customThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); recording.setStatus(io.openvidu.java.client.Recording.Status.failed); log.error("Exception while stopping recorder endpoints", e); + } finally { + customThreadPool.shutdownNow(); } try {