You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Slawomir Jaranowski (Jira)" <ji...@apache.org> on 2023/04/10 11:03:00 UTC

[jira] (MRESOLVER-335) Better resolver errors for Artifact Not Found

    [ https://issues.apache.org/jira/browse/MRESOLVER-335 ]


    Slawomir Jaranowski deleted comment on MRESOLVER-335:
    -----------------------------------------------

was (Author: slawekjaranowski):
This is tricky .... 

{code:java}
               for (Throwable t : result.getExceptions()) {
                    if (t instanceof ArtifactNotFoundException) {
                        if (notFound == null || notFound instanceof ArtifactFilteredOutException) {
                            notFound = t;
                        }
                        if (offline == null && t.getCause() instanceof RepositoryOfflineException) {
                            offline = t;
                        }
                    } else {
                        return t;
                    }
                }
{code}
 
If first exception on the list is not {{ArtifactNotFoundException}} then will be returned as a cause.

Each exception can be generated by configured repository in user project and order depends on project/settings

So when we have an exceptions list as 
 - {{TransferException}} 
 - {{ArtifactNotFoundException}},
 - {{ArtifactNotFoundException}}.

{{TransferException}} will be returned.

Maybe we need check all items on list ... but question is which {{ArtifactNotFoundException}} should be returned as cause?

> Better resolver errors for Artifact Not Found
> ---------------------------------------------
>
>                 Key: MRESOLVER-335
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-335
>             Project: Maven Resolver
>          Issue Type: Improvement
>          Components: Resolver
>            Reporter: Slawomir Jaranowski
>            Priority: Major
>             Fix For: 1.10.0
>
>
> When we have many remote repositories only first {{ArtifactNotFoundException}} is returned, all checks for other repositories are hidden.
> When we have errors for many artifacts in one request - list of problematic artifacts is present in message and only first exception for one artifact.
> Next case is with remote repository filtering, checks for remote repository according to filtering also produce {{ArtifactNotFoundException}}, this is done at the beginning so exception is first on list.
> In logs and exception we have:
> {code}
> Downloading from my-mirror: https://artifactory.../artifactory/remote-repos/org/apache/commons/commons-lang3/4.4.4/commons-lang3-4.4.4.pom
> [WARNING] The POM for org.apache.commons:commons-lang3:jar:4.4.4 is missing, no dependency information available
> Downloading from my-mirror: https://artifactory.../artifactory/remote-repos/org/apache/commons/commons-lang3/4.4.4/commons-lang3-4.4.4.jar
> [ERROR] Failed to execute goal on project maven-3.9: Could not resolve dependencies for project org.test:maven-3.9:jar:1.0.0-SNAPSHOT: Prefix org NOT allowed from mayrepo (https://artifactory.../artifactory/myrepo/, default, releases+snapshots) 
> {code}
> As we see artefact was not found in {{my-mirror}}, but in error report we have information about not allowed prefixes - it can be confusing



--
This message was sent by Atlassian Jira
(v8.20.10#820010)