From 01a2d9ea6e231087b12fddfb0e89eb86f1dda7d1 Mon Sep 17 00:00:00 2001 From: gnembon Date: Mon, 1 Jun 2020 21:10:42 -0300 Subject: [PATCH] removed potential ConcurrentModificationException chance, part one for 304 --- src/main/java/carpet/script/CarpetEventServer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/script/CarpetEventServer.java b/src/main/java/carpet/script/CarpetEventServer.java index 10ca5210..cd5d027d 100644 --- a/src/main/java/carpet/script/CarpetEventServer.java +++ b/src/main/java/carpet/script/CarpetEventServer.java @@ -126,7 +126,13 @@ public class CarpetEventServer List argv = argumentSupplier.get(); // empty for onTickDone ServerCommandSource source = cmdSourceSupplier.get(); assert argv.size() == reqArgs; - callList.removeIf(call -> !CarpetServer.scriptServer.runas(source, call.host, call.function, argv)); // this actually does the calls + List fails = new ArrayList<>(); + for (Callback call: callList) + { + if (!CarpetServer.scriptServer.runas(source, call.host, call.function, argv)) + fails.add(call); + } + for (Callback call : fails) callList.remove(call); } } public boolean addEventCall(ServerCommandSource source, String hostName, String funName, Function verifier)