You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/11/07 13:14:50 UTC
[maven] 01/01: [MNG-7561] never resolve version ranges with same lower and upper bound
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch bugfix/MNG-7561-Maven3.9-backport
in repository https://gitbox.apache.org/repos/asf/maven.git
commit c3efd67b40b19269ef711841ec2879dded7382ea
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Oct 12 09:11:10 2022 +0200
[MNG-7561] never resolve version ranges with same lower and upper bound
Co-authored-by: Guillaume Nodet <gn...@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;