Repository navigation
fix(manifest): materialize the healthy Maven dependencies of a partial graph - #1645
Merged
Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit intoOct 23, 2026
Conversation
Jeppe Fredsgaard Blaabjerg (jfblaa)
added this pull request to stack #1651
October 23, 2026 12:11
Jeppe Fredsgaard Blaabjerg (jfblaa)
removed this pull request from stack #1651
October 23, 2026 12:11
Jeppe Fredsgaard Blaabjerg (jfblaa)
added this pull request to stack #1652
October 23, 2026 12:12
Jeppe Fredsgaard Blaabjerg (jfblaa)
force-pushed
the
jfblaa/maven-facts-partial-graph-materialize
branch
from
October 23, 2026 12:43
2e5273e to
85d5cd1
Compare
Martin Torp (mtorp)
approved these changes
Oct 23, 2026
Martin Torp (mtorp)
left a comment
Contributor
There was a problem hiding this comment.
[agent] Approving. I didn't find issues in this one. The graph is already conflict-resolved and each node carries its own repositories, so running the artifact step on it lines up with what Maven itself would do.
…l graph Maven throws on a collection error before it fetches any artifact, so one dependency whose POM or version range failed left every other dependency of the module without its jar. The facts extension now runs the artifact step itself on the partial graph, leaving the failed dependencies out, and reports each jar it cannot fetch under its full coordinate with an unfetched record. Maven 4's batched failures are unwrapped to their real cause.
Jeppe Fredsgaard Blaabjerg (jfblaa)
force-pushed
the
jfblaa/maven-facts-partial-graph-materialize
branch
from
October 23, 2026 17:09
85d5cd1 to
5903819
Compare
Jeppe Fredsgaard Blaabjerg (jfblaa)
deleted the
jfblaa/maven-facts-partial-graph-materialize
branch
October 23, 2026 17:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
LLM Description written by Claude Code:claude-opus-5-5
Maven throws on a collection error before it fetches any artifact. So one dependency whose POM or version range failed left every other dependency of the module without its jar, and reachability called their vulnerabilities unreachable.
resolveDependenciesdoes).unfetched.Testing:
graph-failurecompat suite extended with a--with-filesrun; passes on Maven 3.2.5, 3.6.3, 3.8.8, 3.9.9 and 4.0.0-rc-6.🤖 Generated with Claude Code
Note
Medium Risk
Changes Maven reachability/facts resolution when dependencies fail partially; incorrect materialization could mis-attribute jar paths or failure reporting, but scope is limited to the facts extension and is covered by compat tests.
Overview
Fixes Maven Socket facts generation when the dependency graph is only partially resolvable—especially with
--with-filesfor reachability.If Maven hits a collection error, it used to skip artifact download for every dependency in that module, so healthy jars never got
filerecords and reachability treated their CVEs as unreachable. The extension now runs AetherresolveDependencieson the partial graph (excluding known-bad nodes), materializing jars for dependencies that still resolve.Jars that cannot be fetched are reported under their full coordinate with a
failurerow and anunfetchedmarker on the node;rootMessagealso unwraps Maven 4 batch errors so the real cause is shown instead of a generic wrapper. Thegraph-failurecompat test adds anojarfixture and asserts--with-filesbehavior.Reviewed by Cursor Bugbot for commit 2e5273e. Configure here.