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

gnodet pushed a commit to branch backport-12088-to-4.0.x
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 41016d48cc922dce3793a36637f30d2d2416af08
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon May 18 23:51:28 2026 +0200

    Fix #12086: filter transitive repos with uninterpolated expressions
    
    Extend the uninterpolated expression filtering to also cover
    repositories from transitive dependency POMs. This prevents
    build failures when a transitive dependency defines a repository
    with a property expression (e.g., ${eclipseP2RepoId}) as its ID
    that is only available in the original project context.
    
    Cherry-picked and adapted from PR #12088 for the 4.0.x branch.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../maven/impl/resolver/DefaultArtifactDescriptorReader.java       | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git 
a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
 
b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
index fece86dc64..88d168cccf 100644
--- 
a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
+++ 
b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
@@ -334,6 +334,13 @@ private int getPolicy(RepositorySystemSession session, 
Artifact a, ArtifactDescr
     }
 
     private void filterUninterpolatedDependencies(ArtifactDescriptorResult 
result) {
+        result.getRepositories().removeIf(repo -> {
+            if (containsPlaceholder(repo.getId()) || 
containsPlaceholder(repo.getUrl())) {
+                logger.debug("Filtered repository with uninterpolated 
expression: {}", repo);
+                return true;
+            }
+            return false;
+        });
         result.getDependencies().removeIf(dep -> {
             if (hasUninterpolatedExpression(dep.getArtifact())) {
                 logger.debug("Filtered dependency with uninterpolated 
expression: {}", dep);

Reply via email to