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

ASF GitHub Bot commented on MNG-7758:
-------------------------------------

slawekjaranowski commented on PR #1563:
URL: https://github.com/apache/maven/pull/1563#issuecomment-2160928042

   > My proposal: let's split the issues, have two: one for Maven 3.9 and one 
for master. Let's merge whatever improvement we have for 3.9 to make 3.9.8 
rollin' and see about master branches of Resolver and Maven later down the road.
   
   if we want it in 3.9 it is not necessary to split - after merge to master I 
simply cherry-pick it to 3.9.x branch
   when we have two PR we will have the same discussion twice




> o.e.aether.resolution.ArtifactResolutionException incorrectly examined when 
> multiple repositories are involved
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-7758
>                 URL: https://issues.apache.org/jira/browse/MNG-7758
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories, Dependencies, Performance
>    Affects Versions: 3.8.8, 3.9.1, 4.0.0-alpha-5
>            Reporter: Michael Osipov
>            Assignee: Slawomir Jaranowski
>            Priority: Critical
>             Fix For: 4.0.0, 3.9.8, 4.0.0-beta-4
>
>         Attachments: 1.png, 2.png, Exception hierarchy.png
>
>
> Consider you have three repos defined in your build (could be POM or 
> settings), evaluated in following order:
> 1. repo A: serves custom artifacts with group id {{com.example}}, due to repo 
> partitioning in Nexus rejects requests to all other group ids with 403
> 1. repo B: serves third party artifacts without any restriction from a Nexus 
> repo
> 1. repo C: serves Central mirror, last one quried, no restrictions
> Note that order is important! Now add a non-existing dependency to your  POM 
> and receive the following behavior:
> {{ArtifactResolutionException}} will contain an {{ArtifactResult}} with three 
> exceptions: 
>  - {{TransferException}} with nested {{AuthorizationException}}, 
>  - {{ArtifactNotFoundException}}, 
>  - {{ArtifactNotFoundException}}. 
> {{ArtifactResolutionException#getCause()}} will be populated with the 
> {{TransferException}} so will 
> {{org.eclipse.aether.resolution.ArtifactResult.isMissing()}} take the first 
> exception only into account. E.g., {{DefaultArtifactDescriptorReader}} will 
> do {{if (e.getCause() instanceof ArtifactNotFoundException)}} which is 
> deceiving.
> Here is a sample for a non-existing artifact:
> {noformat}
> [INFO] --- maven-site-plugin:4.0.0-M7-SNAPSHOT:site (default-site) @ 
> mskins-222 ---
> [INFO] Configuring report plugin 
> org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.2
> [WARNING] index report is declared twice in default reportSet
> [INFO] 15 reports configured for maven-project-info-reports-plugin:3.4.2: 
> index, summary, dependency-info, modules, team, scm, issue-management, 
> mailing-lists, dependency-management, dependencies, dependency-convergence, 
> ci-management, plugin-management, plugins, distribution-management
> [INFO] Rendering site for default locale
> Downloading from lda-public: 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/apache/29/apache-29-site.xml
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time:  3.214 s
> [INFO] Finished at: 2023-04-02T12:51:02+02:00
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-site-plugin:4.0.0-M7-SNAPSHOT:site 
> (default-site) on project mskins-222: SiteToolException: The site descriptor 
> cannot be resolved from the repository: Unable to locate site descriptor: 
> Could not transfer artifact org.apache:apache:xml:site:29 from/to lda-public 
> (https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/): 
> authorization failed for 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/apache/29/apache-29-site.xml,
>  status: 403 Forbidden -> [Help 1]
> [ERROR]
> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
> switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR]
> [ERROR] For more information about the errors and possible solutions, please 
> read the following articles:
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> {noformat}
> for a dependency:
> {noformat}
> [INFO] org.apache.maven.cli.event.ExecutionEventLogger - 
> ------------------------------------------------------------------------
> [ERROR] org.apache.maven.cli.MavenCli - Failed to execute goal 
> org.apache.maven.plugins:maven-site-plugin:4.0.0-M7-SNAPSHOT:site 
> (default-site) on project mskins-222: Failed to get report for 
> org.apache.maven.plugins:maven-project-plugin: Plugin 
> org.apache.maven.plugins:maven-project-plugin:3.4.2 or one of its 
> dependencies could not be resolved: Failed to read artifact descriptor for 
> org.apache.maven.plugins:maven-project-plugin:jar:3.4.2: Could not transfer 
> artifact org.apache.maven.plugins:maven-project-plugin:pom:3.4.2 from/to 
> lda-public 
> (https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/): 
> authorization failed for 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/maven/plugins/maven-project-plugin/3.4.2/maven-project-plugin-3.4.2.pom,
>  status: 403 Forbidden -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-site-plugin:4.0.0-M7-SNAPSHOT:site 
> (default-site) on project mskins-222: Failed to get report for 
> org.apache.maven.plugins:maven-project-plugin
>     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 
> (MojoExecutor.java:375)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute 
> (MojoExecutor.java:351)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:81)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:56)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:128)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>   
> Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to get 
> report for org.apache.maven.plugins:maven-project-plugin
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports 
> (DefaultMavenReportExecutor.java:167)
>     at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports 
> (AbstractSiteRenderingMojo.java:198)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.apache.maven.plugin.PluginResolutionException: Plugin 
> org.apache.maven.plugins:maven-project-plugin:3.4.2 or one of its 
> dependencies could not be resolved: Failed to read artifact descriptor for 
> org.apache.maven.plugins:maven-project-plugin:jar:3.4.2
>     at 
> org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve 
> (DefaultPluginDependenciesResolver.java:133)
>     at 
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor
>  (DefaultMavenPluginManager.java:182)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelper.getPluginDescriptor
>  (DefaultMavenPluginManagerHelper.java:67)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin 
> (DefaultMavenReportExecutor.java:185)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports 
> (DefaultMavenReportExecutor.java:164)
>     at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports 
> (AbstractSiteRenderingMojo.java:198)
>     at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:108)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:137)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed 
> to read artifact descriptor for 
> org.apache.maven.plugins:maven-project-plugin:jar:3.4.2
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom 
> (DefaultArtifactDescriptorReader.java:255)
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor
>  (DefaultArtifactDescriptorReader.java:171)
>     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor
>  (DefaultRepositorySystem.java:255)
>     at 
> org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve 
> (DefaultPluginDependenciesResolver.java:107)
>     at 
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor
>  (DefaultMavenPluginManager.java:182)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelper.getPluginDescriptor
>  (DefaultMavenPluginManagerHelper.java:67)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin 
> (DefaultMavenReportExecutor.java:185)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports 
> (DefaultMavenReportExecutor.java:164)
>     at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports 
> (AbstractSiteRenderingMojo.java:198)
>     at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:108)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:137)
> Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could 
> not transfer artifact org.apache.maven.plugins:maven-project-plugin:pom:3.4.2 
> from/to lda-public 
> (https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/): 
> authorization failed for 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/maven/plugins/maven-project-plugin/3.4.2/maven-project-plugin-3.4.2.pom,
>  status: 403 Forbidden
>     at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve 
> (DefaultArtifactResolver.java:425)
>     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts 
> (DefaultArtifactResolver.java:229)
>     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact 
> (DefaultArtifactResolver.java:207)
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom 
> (DefaultArtifactDescriptorReader.java:240)
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor
>  (DefaultArtifactDescriptorReader.java:171)
>     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor
>  (DefaultRepositorySystem.java:255)
>     at 
> org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve 
> (DefaultPluginDependenciesResolver.java:107)
>     at 
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor
>  (DefaultMavenPluginManager.java:182)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelper.getPluginDescriptor
>  (DefaultMavenPluginManagerHelper.java:67)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin 
> (DefaultMavenReportExecutor.java:185)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports 
> (DefaultMavenReportExecutor.java:164)
>     at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports 
> (AbstractSiteRenderingMojo.java:198)
>     at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:108)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not 
> transfer artifact org.apache.maven.plugins:maven-project-plugin:pom:3.4.2 
> from/to lda-public 
> (https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/): 
> authorization failed for 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/maven/plugins/maven-project-plugin/3.4.2/maven-project-plugin-3.4.2.pom,
>  status: 403 Forbidden
>     at 
> org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed 
> (ArtifactTransportListener.java:52)
>     at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run 
> (BasicRepositoryConnector.java:369)
>     at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run 
> (RunnableErrorForwarder.java:75)
>     at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute
>  (BasicRepositoryConnector.java:628)
>     at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get 
> (BasicRepositoryConnector.java:262)
>     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads 
> (DefaultArtifactResolver.java:514)
>     at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve 
> (DefaultArtifactResolver.java:402)
>     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts 
> (DefaultArtifactResolver.java:229)
>     at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact 
> (DefaultArtifactResolver.java:207)
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom 
> (DefaultArtifactDescriptorReader.java:240)
>     at 
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor
>  (DefaultArtifactDescriptorReader.java:171)
>     at 
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor
>  (DefaultRepositorySystem.java:255)
>     at 
> org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve 
> (DefaultPluginDependenciesResolver.java:107)
>     at 
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor
>  (DefaultMavenPluginManager.java:182)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenPluginManagerHelper.getPluginDescriptor
>  (DefaultMavenPluginManagerHelper.java:67)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin 
> (DefaultMavenReportExecutor.java:185)
>     at 
> org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports 
> (DefaultMavenReportExecutor.java:164)
>     at 
> org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports 
> (AbstractSiteRenderingMojo.java:198)
>     at org.apache.maven.plugins.site.render.SiteMojo.execute 
> (SiteMojo.java:108)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.apache.maven.wagon.authorization.AuthorizationException: 
> authorization failed for 
> https://deblndw011x.ad001.siemens.net/nexus/content/groups/lda-public/org/apache/maven/plugins/maven-project-plugin/3.4.2/maven-project-plugin-3.4.2.pom,
>  status: 403 Forbidden
>     at 
> org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData
>  (AbstractHttpClientWagon.java:1184)
>     at 
> org.apache.maven.wagon.providers.http.wagon.shared.AbstractHttpClientWagon.fillInputData
>  (AbstractHttpClientWagon.java:1140)
>     at org.apache.maven.wagon.StreamWagon.getInputStream 
> (StreamWagon.java:126)
>     at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88)
>     at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
>     at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run 
> (WagonTransporter.java:546)
>     at org.eclipse.aether.transport.wagon.WagonTransporter.execute 
> (WagonTransporter.java:430)
>     at org.eclipse.aether.transport.wagon.WagonTransporter.get 
> (WagonTransporter.java:407)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> [ERROR] org.apache.maven.cli.MavenCli -
> [ERROR] org.apache.maven.cli.MavenCli -
> [ERROR] org.apache.maven.cli.MavenCli - For more information about the errors 
> and possible solutions, please read the following articles:
> [ERROR] org.apache.maven.cli.MavenCli - [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> {noformat}
> The outcome of this handling is totally dependent on the order of 
> repositories. If the repo A would be at the end the exception stracktrace 
> would be completely different. It is perfectly fine that if one repo is not 
> responding the other one responds properly, regardless if the artifact is 
> found or not. The end result is important.
> Affected components:
> * 
> {{org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(Artifact,
>  List<ArtifactRepository>, RepositorySystemSession)}}
> * 
> {{org.apache.maven.project.artifact.MavenMetadataSource.isMissingPom(Exception)}}
> * 
> {{org.apache.maven.project.artifact.MavenMetadataSource.isNonTransferrablePom(Exception)}}
> * {{org.apache.maven.project.DefaultProjectBuilder.build(Artifact, boolean, 
> ProjectBuildingRequest)}}
> * 
> {{org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(RepositorySystemSession,
>  ArtifactDescriptorRequest, ArtifactDescriptorResult)}}
> * 
> {{org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(String,
>  String, String)}}
> * {{org.apache.maven.project.ProjectModelResolver.resolveModel(String, 
> String, String)}}
> * 
> {{org.apache.maven.project.collector.MultiModuleCollectionStrategy.isModuleOutsideRequestScopeDependingOnPluginModule(MavenExecutionRequest,
>  ProjectBuildingException)}}
> * 
> {{org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(RepositorySystemSession,
>  DependencyRequest)}} with {{throw new DependencyResolutionException(result, 
> are);}} with {{cause}} and {{message}} being problematic



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

Reply via email to