You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2026/06/07 09:50:07 UTC

(maven-resolver) 06/06: Fix GnupgSignatureArtifactGenerator — use CopyOnWriteArrayList for artifacts

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch gnodet/thread-safety-fixes
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit fba518caa1f3e2b93d2d8d356a668cc1829a3ec6
Author: Guillaume Nodet <gn...@gmail.com>
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.
    
    Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
 .../aether/generator/gnupg/GnupgSignatureArtifactGenerator.java       | 4 ++--
 1 file changed, 2 insertions(+), 2 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..29cd9ba5a 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
@@ -50,7 +50,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;
@@ -65,7 +65,7 @@ final class GnupgSignatureArtifactGenerator implements ArtifactGenerator {
             PGPPrivateKey privateKey,
             PGPSignatureSubpacketVector hashSubPackets,
             String keyInfo) {
-        this.artifacts = new ArrayList<>(artifacts);
+        this.artifacts = new CopyOnWriteArrayList<>(artifacts);
         this.signableArtifactPredicate = signableArtifactPredicate;
         this.secretKey = secretKey;
         this.privateKey = privateKey;