This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch maven-3.9.x in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.9.x by this push: new eb66f225d [MNG-7561] never resolve version ranges with same lower and upper bound (#864) eb66f225d is described below commit eb66f225db249d9b80068f66fc87daff59727205 Author: Konrad Windszus <k...@apache.org> AuthorDate: Sun Nov 27 11:36:17 2022 +0100 [MNG-7561] never resolve version ranges with same lower and upper bound (#864) Co-authored-by: Guillaume Nodet <gno...@gmail.com> --- .../internal/DefaultVersionRangeResolver.java | 41 +++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java index 491376f67..0879b696b 100644 --- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java @@ -47,6 +47,7 @@ import org.eclipse.aether.util.version.GenericVersionScheme; import org.eclipse.aether.version.InvalidVersionSpecificationException; import org.eclipse.aether.version.Version; import org.eclipse.aether.version.VersionConstraint; +import org.eclipse.aether.version.VersionRange; import org.eclipse.aether.version.VersionScheme; import javax.inject.Inject; @@ -146,28 +147,36 @@ public class DefaultVersionRangeResolver } else { - Map<String, ArtifactRepository> versionIndex = getVersions( session, result, request ); - - List<Version> versions = new ArrayList<>(); - for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() ) + VersionRange.Bound lowerBound = versionConstraint.getRange().getLowerBound(); + if ( lowerBound != null && lowerBound.equals( versionConstraint.getRange().getUpperBound() ) ) + { + result.addVersion( lowerBound.getVersion() ); + } + else { - try + Map<String, ArtifactRepository> versionIndex = getVersions( session, result, request ); + + List<Version> versions = new ArrayList<>(); + for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() ) { - Version ver = versionScheme.parseVersion( v.getKey() ); - if ( versionConstraint.containsVersion( ver ) ) + try + { + Version ver = versionScheme.parseVersion( v.getKey() ); + if ( versionConstraint.containsVersion( ver ) ) + { + versions.add( ver ); + result.setRepository( ver, v.getValue() ); + } + } + catch ( InvalidVersionSpecificationException e ) { - versions.add( ver ); - result.setRepository( ver, v.getValue() ); + result.addException( e ); } } - catch ( InvalidVersionSpecificationException e ) - { - result.addException( e ); - } - } - Collections.sort( versions ); - result.setVersions( versions ); + Collections.sort( versions ); + result.setVersions( versions ); + } } return result;