From 4ac5ed3cd99c570c0e8f63cf84fc2f63da4e7321 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Fri, 17 Jul 2026 13:40:21 +0200 Subject: [PATCH] Fix: be more defensive regarding request traces As they NPE in UTs but would also NPE in calls made by some non-maven callers that usually do not set trace at all. --- .../internal/impl/DefaultRepositorySystem.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java index 009cbc9ff..aecdd697d 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java @@ -277,8 +277,11 @@ public List resolveArtifacts( throws ArtifactResolutionException { requireNonNull(requests, "requests cannot be null"); // All requests in a batch share the same trace context, so checking any one is sufficient. - RequestTrace firstTrace = - requests.stream().map(ArtifactRequest::getTrace).findFirst().orElse(null); + RequestTrace firstTrace = requests.stream() + .map(ArtifactRequest::getTrace) + .filter(Objects::nonNull) + .findFirst() + .orElse(null); if (!isReentrant(firstTrace)) { validateSession(session); repositorySystemValidator.validateArtifactRequests(session, requests); @@ -294,8 +297,11 @@ public List resolveMetadata( RepositorySystemSession session, Collection requests) { requireNonNull(requests, "requests cannot be null"); // All requests in a batch share the same trace context, so checking any one is sufficient. - RequestTrace firstTrace = - requests.stream().map(MetadataRequest::getTrace).findFirst().orElse(null); + RequestTrace firstTrace = requests.stream() + .map(MetadataRequest::getTrace) + .filter(Objects::nonNull) + .findFirst() + .orElse(null); if (!isReentrant(firstTrace)) { validateSession(session); repositorySystemValidator.validateMetadataRequests(session, requests);