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 adb0e8eb653a8cc71499b730840f6ad2aa6ed71d
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Jun 7 06:20:03 2026 +0000

    Fix IpcClient field visibility — make socket/output/input volatile
    
    F-02: Declare socket, output, input, and receiver fields as volatile
    so that writes in close(Throwable) are visible to concurrent readers
    in send() and receive() without requiring synchronization on this.
---
 .../src/main/java/org/eclipse/aether/named/ipc/IpcClient.java     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcClient.java
 
b/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcClient.java
index f7f9a643f..852bdcc66 100644
--- 
a/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcClient.java
+++ 
b/maven-resolver-named-locks-ipc/src/main/java/org/eclipse/aether/named/ipc/IpcClient.java
@@ -81,10 +81,10 @@ public class IpcClient {
     protected final Path syncPath;
     protected final boolean noFork;
 
-    protected SocketChannel socket;
-    protected DataOutputStream output;
-    protected DataInputStream input;
-    protected Thread receiver;
+    protected volatile SocketChannel socket;
+    protected volatile DataOutputStream output;
+    protected volatile DataInputStream input;
+    protected volatile Thread receiver;
 
     protected final AtomicInteger requestId = new AtomicInteger();
     protected final Map<Integer, CompletableFuture<List<String>>> responses = 
new ConcurrentHashMap<>();

Reply via email to