From 6cab16b5bb9c08db0b68b1f7f4aed704bba34045 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Tue, 27 Jan 2026 11:24:26 +0100 Subject: [PATCH] trying to circumvent the ConcurrentModificaationException thrown when pushing new messages Signed-off-by: Stephan Richter --- .../java/de/srsoftware/umbrella/messagebus/MessageBus.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java b/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java index 75aca937..f5919e88 100644 --- a/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java +++ b/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java @@ -3,6 +3,8 @@ package de.srsoftware.umbrella.messagebus; import de.srsoftware.umbrella.messagebus.events.Event; import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Set; public class MessageBus { @@ -15,7 +17,7 @@ public class MessageBus { new Thread(() -> { // TODO: use thread pool try { Thread.sleep(100); - listeners.parallelStream().forEach(l -> l.onEvent(event)); + List.copyOf(listeners).parallelStream().forEach(l -> l.onEvent(event)); } catch (InterruptedException ignored) { } }).start();