Skip to content

Commit 85e556f

Browse files
committed
Dispatch events on a copy of the listener list
This allows for listeners to be removed/added while dispatching.
1 parent 8f8194e commit 85e556f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

theme/src/main/java/com/github/weisj/darklaf/theme/event/ThemeEventSupport.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ public void dispatchEvent(final E event) {
4343
}
4444

4545
public void dispatchEvent(final E event, final BiConsumer<T, E> consumer) {
46-
listenerList.forEach(listener -> {
47-
if (listener != null) consumer.accept(listener, event);
48-
});
46+
synchronized (listenerList) {
47+
new ArrayList<>(listenerList).forEach(listener -> {
48+
if (listener != null) consumer.accept(listener, event);
49+
});
50+
}
4951
}
5052
}

0 commit comments

Comments
 (0)