[ 
https://issues.apache.org/jira/browse/MRESOLVER-335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17710107#comment-17710107
 ] 

Slawomir Jaranowski commented on MRESOLVER-335:
-----------------------------------------------

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)

Reply via email to