Konrad Windszus created MRESOLVER-597: -----------------------------------------
Summary: RepositorySystem.resolveArtifactRepositorySystemSession session, ArtifactRequest request) throws unexpected IllegalArgumentException Key: MRESOLVER-597 URL: https://issues.apache.org/jira/browse/MRESOLVER-597 Project: Maven Resolver Issue Type: Improvement Affects Versions: 1.9.20 Reporter: Konrad Windszus I see the following exception when trying to resolve an artifact which does not have a version via {code} ArtifactRequest request = new ArtifactRequest(); request.setArtifact(artifact); ArtifactResult result = repositorySystem.resolveArtifact(repositorySession, request); {code} {code} java.lang.IllegalArgumentException: version can neither be null, empty nor blank at org.apache.maven.artifact.ArtifactUtils.notBlank (ArtifactUtils.java:95) at org.apache.maven.artifact.ArtifactUtils.key (ArtifactUtils.java:86) at org.apache.maven.ReactorReader.findArtifact (ReactorReader.java:96) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:350) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:261) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:243) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:278) {code} According to https://github.com/apache/maven-resolver/blob/362a43675f01b8bb3d85d7b0ff76a21d57de6fee/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifact.java#L137 every argument passed to the constructor of {{DefaultArtifact}} may be {{null}} or empty. However not all {{Artifact}} objects are valid then for {{ArtifactRequest}}. Although throwing an exception is totally valid here either the {{IllegalArgumentException}} should be documented in the javadoc of https://maven.apache.org/resolver/apidocs/org/eclipse/aether/RepositorySystem.html#resolveArtifact(org.eclipse.aether.RepositorySystemSession,org.eclipse.aether.resolution.ArtifactRequest). IMHO it would make sense to throw the exception already when either populating or constructing the {{ArtifactRequest}}, as only non empty coordinates are supported. -- This message was sent by Atlassian Jira (v8.20.10#820010)