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 5e928d28eb3a1437fae38764753ee9d75f7a49c6
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Jun 7 09:46:48 2026 +0000

    Fix Results — synchronize read methods for visibility
    
    The write paths addException() and addCycle() are synchronized but
    getResult() and getErrorPath() were not, so readers could observe
    stale data without a happens-before edge from the writer.
    
    Make both getter methods synchronized to establish proper visibility
    guarantees for cross-thread reads.
---
 .../aether/internal/impl/collect/DependencyCollectorDelegate.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java
 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java
index 988b8e418..d7cf77b23 100644
--- 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java
+++ 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java
@@ -560,11 +560,11 @@ public abstract class DependencyCollectorDelegate 
implements DependencyCollector
             maxCycles = ConfigUtils.getInteger(session, DEFAULT_MAX_CYCLES, 
CONFIG_PROP_MAX_CYCLES);
         }
 
-        public CollectResult getResult() {
+        public synchronized CollectResult getResult() {
             return result;
         }
 
-        public String getErrorPath() {
+        public synchronized String getErrorPath() {
             return errorPath;
         }
 

Reply via email to