From c209617ee75656b5e2908a634221da142b0c0248 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Thu, 25 Apr 2019 13:38:44 +0800 Subject: [PATCH] Try to fix ConcurrentModificationException --- .../main/java/org/jackhuang/hmcl/event/EventManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java index ae0c82b31..f3963323c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/event/EventManager.java @@ -72,6 +72,10 @@ public final class EventManager { return Event.Result.DEFAULT; } + private synchronized void removeConsumer(Consumer consumer) { + handlers.removeValue(consumer); + } + private class WeakListener implements Consumer { private final WeakReference> ref; @@ -83,7 +87,7 @@ public final class EventManager { public void accept(T t) { Consumer listener = ref.get(); if (listener == null) { - handlers.removeValue(this); + removeConsumer(this); } else { listener.accept(t); }