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

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

slawekjaranowski commented on code in PR #1563:
URL: https://github.com/apache/maven/pull/1563#discussion_r1635985392


##########
maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java:
##########
@@ -160,7 +160,9 @@ public DependencyResolutionResult 
resolve(DependencyResolutionRequest request)
             result.setCollectionErrors(e.getResult().getExceptions());
 
             throw new DependencyResolutionException(
-                    result, "Could not resolve dependencies for project " + 
project.getId() + ": " + e.getMessage(), e);
+                    result,
+                    "Could not collect dependencies for project " + 
project.getId(),
+                    logger.isDebugEnabled() ? e : null);

Review Comment:
   we can think about it ... how to reporting a problems to user but it is 
another issue for me, now I did as simple as possible 
   we also have many other UGLY code ... 😸 





> 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