Skip to content

Commit d44c647

Browse files
committed
fix: adding a message handler while handling a message does not cause concurrency exceptions
1 parent 557035e commit d44c647

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

fxgl-io/src/main/java/com/almasb/fxgl/net/Connection.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.List;
1717
import java.util.concurrent.ArrayBlockingQueue;
1818
import java.util.concurrent.BlockingQueue;
19+
import java.util.concurrent.CopyOnWriteArrayList;
1920

2021
/**
2122
* @author Almas Baimagambetov ([email protected])
@@ -30,8 +31,8 @@ public abstract class Connection<T> {
3031

3132
private PropertyMap localSessionData = new PropertyMap();
3233

33-
protected final List<MessageHandler<T>> messageHandlers = new ArrayList<>();
34-
protected final List<MessageHandler<T>> messageHandlersFX = new ArrayList<>();
34+
protected final List<MessageHandler<T>> messageHandlers = new CopyOnWriteArrayList<>();
35+
protected final List<MessageHandler<T>> messageHandlersFX = new CopyOnWriteArrayList<>();
3536

3637
protected BlockingQueue<T> messageQueue = new ArrayBlockingQueue<>(100);
3738

0 commit comments

Comments
 (0)