From f3b5150118a90b007a105a2c41b33b0fd21b31b9 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sun, 21 Nov 2021 17:54:30 +0100
Subject: [PATCH] #174 - Fix concurrent modification issue

---
 .../plugin/api/client/WebApiRemoteConnectionStateListener.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
index 1c095abf..5611562f 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
@@ -63,10 +63,11 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
 	}
 
 	private void createConnectionStateBinding() {
+		final List<PlayPadClient> clients = new ArrayList<>(WebApiPlugin$.MODULE$.connections().values());
 		connectedProperty.bind(Bindings.createIntegerBinding(() -> (int) WebApiPlugin$.MODULE$.connections().values().stream()
 						.filter(client -> client.getPlayPadConnectionState() != WebSocketState.OPEN)
 						.count(),
-				WebApiPlugin$.MODULE$.connections().values().stream()
+				clients.stream()
 						.map(PlayPadClient::playPadConnectionState)
 						.toArray(ObjectProperty[]::new))
 		);
-- 
GitLab