This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
commit b241f2a022f17c59ed3e817cf21bcf267ccd46d1 Author: Guillaume Nodet <[email protected]> AuthorDate: Sun Jun 7 06:21:48 2026 +0000 Fix IpcServer clients HashMap — use ConcurrentHashMap F-03: Replace plain HashMap with ConcurrentHashMap for the clients map so that close() and expirationCheck() can safely access it without synchronization, preventing ConcurrentModificationException and data races. --- .../src/main/java/org/eclipse/aether/named/ipc/IpcServer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcServer.java b/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcServer.java index 1f8386f18..dcafa4cba 100644 --- a/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcServer.java +++ b/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcServer.java @@ -27,7 +27,6 @@ import java.nio.channels.Channels; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -111,7 +110,7 @@ public class IpcServer { public static final boolean DEFAULT_DEBUG = false; private final ServerSocketChannel serverSocket; - private final Map<SocketChannel, Thread> clients = new HashMap<>(); + private final Map<SocketChannel, Thread> clients = new ConcurrentHashMap<>(); private final AtomicInteger counter = new AtomicInteger(); private final Map<String, Lock> locks = new ConcurrentHashMap<>(); private final Map<String, Context> contexts = new ConcurrentHashMap<>();
