From 380c68ac89e3471aff9895c1f2c858ff96387203 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Sat, 29 Aug 2026 09:29:15 +0200 Subject: [PATCH] Fix #12589: fix operator precedence for BOM import dependency filtering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The condition `!("pom".equals(type) && "import".equals(scope)) || "bom".equals(type)` evaluates as `!(pom AND import) OR bom`, which causes BOM-type dependencies to always be skipped via `continue`. The intended logic is `!((pom AND import) OR bom)` — skip anything that is NOT a pom/import and NOT a bom. Fixed by moving the closing parenthesis to wrap the entire OR expression under the negation. Co-Authored-By: Claude Opus 4.6 --- .../java/org/apache/maven/impl/model/DefaultModelBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java index 46602d0c02c7..a930fa495453 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java @@ -2085,8 +2085,8 @@ private Model importDependencyManagement(Model model, Collection importI for (Iterator it = deps.iterator(); it.hasNext(); ) { Dependency dependency = it.next(); - if (!("pom".equals(dependency.getType()) && "import".equals(dependency.getScope())) - || "bom".equals(dependency.getType())) { + if (!(("pom".equals(dependency.getType()) && "import".equals(dependency.getScope())) + || "bom".equals(dependency.getType()))) { continue; }