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 e66df503d73c9f5f19abe316b1ec39340750809b
Author: Guillaume Nodet <[email protected]>
AuthorDate: Sun Jun 7 09:47:24 2026 +0000

    Fix GnupgSignatureArtifactGenerator — use CopyOnWriteArrayList for artifacts
    
    The signatureTempFiles field was changed to CopyOnWriteArrayList for
    thread safety, but the artifacts field (also mutated via addAll in
    generate()) was left as a plain ArrayList.
    
    Change artifacts to CopyOnWriteArrayList for consistency, since both
    fields are mutated and iterated in the same methods.
---
 .../aether/generator/gnupg/GnupgSignatureArtifactGenerator.java  | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/maven-resolver-generator-gnupg/src/main/java/org/eclipse/aether/generator/gnupg/GnupgSignatureArtifactGenerator.java
 
b/maven-resolver-generator-gnupg/src/main/java/org/eclipse/aether/generator/gnupg/GnupgSignatureArtifactGenerator.java
index 17d0564df..f51742ac7 100644
--- 
a/maven-resolver-generator-gnupg/src/main/java/org/eclipse/aether/generator/gnupg/GnupgSignatureArtifactGenerator.java
+++ 
b/maven-resolver-generator-gnupg/src/main/java/org/eclipse/aether/generator/gnupg/GnupgSignatureArtifactGenerator.java
@@ -28,7 +28,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.function.Predicate;
 
 import org.bouncycastle.bcpg.ArmoredOutputStream;
@@ -50,7 +49,7 @@ import org.slf4j.LoggerFactory;
 final class GnupgSignatureArtifactGenerator implements ArtifactGenerator {
     private static final String ARTIFACT_EXTENSION = ".asc";
     private final Logger logger = LoggerFactory.getLogger(getClass());
-    private final ArrayList<Artifact> artifacts;
+    private final List<Artifact> artifacts;
     private final Predicate<Artifact> signableArtifactPredicate;
     private final PGPSecretKey secretKey;
     private final PGPPrivateKey privateKey;
@@ -71,7 +70,7 @@ final class GnupgSignatureArtifactGenerator implements 
ArtifactGenerator {
         this.privateKey = privateKey;
         this.hashSubPackets = hashSubPackets;
         this.keyInfo = keyInfo;
-        this.signatureTempFiles = new CopyOnWriteArrayList<>();
+        this.signatureTempFiles = new ArrayList<>();
         logger.debug("Created generator using key {}", keyInfo);
     }
 
@@ -81,7 +80,7 @@ final class GnupgSignatureArtifactGenerator implements 
ArtifactGenerator {
     }
 
     @Override
-    public Collection<? extends Artifact> generate(Collection<? extends 
Artifact> generatedArtifacts) {
+    public synchronized Collection<? extends Artifact> generate(Collection<? 
extends Artifact> generatedArtifacts) {
         try {
             artifacts.addAll(generatedArtifacts);
 
@@ -116,7 +115,7 @@ final class GnupgSignatureArtifactGenerator implements 
ArtifactGenerator {
     }
 
     @Override
-    public void close() {
+    public synchronized void close() {
         signatureTempFiles.forEach(p -> {
             try {
                 Files.deleteIfExists(p);

Reply via email to