This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch maven-3.8.x
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.8.x by this push:
new 8047c5902 [MNG-7561] never resolve version ranges with same lower and
upper bound (#864)
8047c5902 is described below
commit 8047c5902ae17bad5e70f59fa1fc60c523e18aaf
Author: Konrad Windszus <[email protected]>
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 <[email protected]>
---
.../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 b4abce4f4..dc361a909 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;