diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java index 763680e2..38544ba6 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java @@ -143,7 +143,9 @@ public class InGameLobbyController extends Controller { int count = 0; int row = 0; - for (VisualiserBoat boat :visualiserRaceEvent.getVisualiserRaceState().getBoats()) { + ArrayList copy = new ArrayList<>(visualiserRaceEvent.getVisualiserRaceState().getBoats()); + + for (VisualiserBoat boat : copy) { View3D playerBoatToSet = new View3D(); playerBoatToSet.setItems(subjects); diff --git a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java index 40857437..38816a0e 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/LobbyController.java @@ -173,7 +173,6 @@ public class LobbyController extends Controller { * Adds the games received from the server */ private void addServerGames() { - httpMatchBrowserClient.connections.clear(); httpMatchBrowserClient.connections.addAll(customConnections); httpMatchBrowserClient.connections.addListener(new ListChangeListener() { @Override diff --git a/racevisionGame/src/main/java/visualiser/model/VisualiserRaceEvent.java b/racevisionGame/src/main/java/visualiser/model/VisualiserRaceEvent.java index 5d786d90..7781d2e3 100644 --- a/racevisionGame/src/main/java/visualiser/model/VisualiserRaceEvent.java +++ b/racevisionGame/src/main/java/visualiser/model/VisualiserRaceEvent.java @@ -116,6 +116,8 @@ public class VisualiserRaceEvent { this.visualiserRaceServiceThread.interrupt(); this.serverConnectionThread.interrupt(); serverConnection.terminate(); - HttpMatchBrowserHost.httpMatchBrowserHost.interrupt(); + if (HttpMatchBrowserHost.httpMatchBrowserHost != null) { + HttpMatchBrowserHost.httpMatchBrowserHost.interrupt(); + } } } diff --git a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java index 7e287f7c..25b28ac7 100644 --- a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java +++ b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java @@ -23,6 +23,8 @@ public class HttpMatchBrowserClient extends Thread { while(!Thread.interrupted()) { try { JSONArray cons = JsonReader.readJsonFromUrlArray("http://api.umbrasheep.com/seng/get_matches/"); + connections.clear(); + for (int i = 0; i < cons.length(); i++) { JSONObject con = (JSONObject) cons.get(i); connections.add(new RaceConnection((String) con.get("ip_address"), con.getInt("port"), "Boat Game"));