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);
