[ https://issues.apache.org/jira/browse/MRESOLVER-345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tamas Cservenak updated MRESOLVER-345: -------------------------------------- Summary: Conflict resolution in verbose mode is sensitive to version ordering (was: Conflict resolution is sensitive to version ordering) > Conflict resolution in verbose mode is sensitive to version ordering > -------------------------------------------------------------------- > > Key: MRESOLVER-345 > URL: https://issues.apache.org/jira/browse/MRESOLVER-345 > Project: Maven Resolver > Issue Type: Bug > Reporter: Tamas Cservenak > Priority: Major > > It all started with MENFORCER-426. In short, if we have layout of > dependencies like this below (ranges are key here), *conflict resolution in > verbose mode* will misbehave, is sensitive on version ordering in the "dirty > tree" (collected graph, output of DependencyCollector). > {noformat} > A -> B -> C[1..2] > \--> C[1..2] {noformat} > (explained: A depends on B and C[1..2] range, and B depends on C[1..2] as > well) > As when "dirty tree" is being collected by DependencyCollector (and we have > two, old DF and new BF), the ranges are turned into series of discovered (by > VersionRangeResolver) versions, so the input above while collecting A from > above would yield some tree like this (in this example {{some-group:c:jar}} > has versions 1.0 and 2.0 ): > {noformat} > some-group:a:jar:1.0 [compile] > +- some-group:b:jar:1.0 [compile] > | +- some-group:c:jar:1.0 [compile] > | \- some-group:c:jar:2.0 [compile] > +- some-group:c:jar:1.0 [compile] > \- some-group:c:jar:2.0 [compile] {noformat} > This "dirty tree" is then transformed using {{ConflictResolver}} into final > graph. Conflict resolver in "normal" mode works OK and produces stable > outputs, that is not sensitive to ordering, this is OK. > But, conflict resolver supports so called "verbose" mode as well, mostly used > to perform some "analysis" on graph (like for example "dependency > convergence" is). Conflict resolver in "verbose" mode {*}is version ordering > sensitive{*}. > Conflict resolver "verbose" -- This message was sent by Atlassian Jira (v8.20.10#820010)