[ https://issues.apache.org/jira/browse/MNG-8229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17877979#comment-17877979 ]
ASF GitHub Bot commented on MNG-8229: ------------------------------------- gnodet commented on code in PR #1690: URL: https://github.com/apache/maven/pull/1690#discussion_r1738033500 ########## maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java: ########## @@ -48,13 +49,20 @@ class ReactorModelPool { * @throws IllegalStateException if version was null and multiple modules share the same groupId + artifactId */ public Model get(String groupId, String artifactId, String version) { - return modelsByGa.getOrDefault(new GAKey(groupId, artifactId), Collections.emptySet()).stream() - .filter(m -> version == null || version.equals(getVersion(m))) - .reduce((a, b) -> { - throw new IllegalStateException( - "Multiple modules with key " + a.getGroupId() + ':' + a.getArtifactId()); - }) - .orElse(null); + Collection<Model> models = modelsByGa.getOrDefault(new GAKey(groupId, artifactId), Collections.emptySet()); + if (models.isEmpty()) { + return null; + } else if (models.size() == 1) { + return models.iterator().next(); + } else { + return models.stream() + .filter(m -> version == null || version.equals(getVersion(m))) + .reduce((a, b) -> { + throw new IllegalStateException( + "Multiple modules with key " + a.getGroupId() + ':' + a.getArtifactId()); + }) + .orElse(null); + } Review Comment: This does not change the behaviour, right ? What's the point ? > Jenkins core does not compile with Maven 4.0.0 betas > ---------------------------------------------------- > > Key: MNG-8229 > URL: https://issues.apache.org/jira/browse/MNG-8229 > Project: Maven > Issue Type: Bug > Components: Core > Affects Versions: 4.0.0-beta-3 > Environment: Apache Maven 4.0.0-beta-4-SNAPSHOT > (b370e5e9299813e6df483bac049ec162b86fb7e8) > Java version: 17.0.12, vendor: Ubuntu, runtime: > /usr/lib/jvm/java-17-openjdk-amd64 > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux", version: "5.15.0-119-generic", arch: "amd64", family: "unix" > Reporter: Basil Crow > Priority: Major > > Try running {{git clone https://github.com/jenkinsci/jenkins.git && cd > jenkins && mvn verify -Pquick-build}}. On Maven 3.9.9, compilation succeeds; > on 4.0.0-beta-3 and 4.0.0-beta-4-SNAPSHOT (tip-of-trunk at > b370e5e9299813e6df483bac049ec162b86fb7e8), the build fails with > {noformat} > [INFO] Scanning for projects... > Downloading from repo.jenkins-ci.org: > https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-bom/2.475-SNAPSHOT/maven-metadata.xml > Downloading from repo.jenkins-ci.org: > https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-bom/2.475-SNAPSHOT/jenkins-bom-2.475-SNAPSHOT.pom > [ERROR] Internal error: org.apache.maven.api.services.ModelResolverException: > The following artifacts could not be resolved: > org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT (absent): Could not find > artifact org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in > repo.jenkins-ci.org (https://repo.jenkins-ci.org/public/) -> [Help 1] > org.apache.maven.InternalErrorException: Internal error: > org.apache.maven.api.services.ModelResolverException: The following artifacts > could not be resolved: org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT > (absent): Could not find artifact > org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in repo.jenkins-ci.org > (https://repo.jenkins-ci.org/public/) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:157) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:981) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:291) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:208) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) > at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:569) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314) > Caused by: org.apache.maven.api.services.ModelResolverException: The > following artifacts could not be resolved: > org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT (absent): Could not find > artifact org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in > repo.jenkins-ci.org (https://repo.jenkins-ci.org/public/) > at > org.apache.maven.project.DefaultProjectBuilder$ModelResolverWrapper.resolveModel(DefaultProjectBuilder.java:1298) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.doLoadDependencyManagement(DefaultModelBuilder.java:1377) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$loadDependencyManagement$6(DefaultModelBuilder.java:1306) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$asSupplier$10(DefaultModelBuilder.java:1460) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache$CachingSupplier.get(DefaultModelCache.java:194) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:81) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:71) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.cache(DefaultModelBuilder.java:1444) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.loadDependencyManagement(DefaultModelBuilder.java:1300) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1230) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:579) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:198) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.doBuild(DefaultProjectBuilder.java:764) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.lambda$build$6(DefaultProjectBuilder.java:733) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: org.apache.maven.model.resolution.UnresolvableModelException: The > following artifacts could not be resolved: > org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT (absent): Could not find > artifact org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in > repo.jenkins-ci.org (https://repo.jenkins-ci.org/public/) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:181) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:338) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:358) > at > org.apache.maven.project.DefaultProjectBuilder$ModelResolverWrapper.resolveModel(DefaultProjectBuilder.java:1292) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.doLoadDependencyManagement(DefaultModelBuilder.java:1377) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$loadDependencyManagement$6(DefaultModelBuilder.java:1306) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$asSupplier$10(DefaultModelBuilder.java:1460) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache$CachingSupplier.get(DefaultModelCache.java:194) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:81) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:71) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.cache(DefaultModelBuilder.java:1444) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.loadDependencyManagement(DefaultModelBuilder.java:1300) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1230) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:579) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:198) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.doBuild(DefaultProjectBuilder.java:764) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.lambda$build$6(DefaultProjectBuilder.java:733) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The > following artifacts could not be resolved: > org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT (absent): Could not find > artifact org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in > repo.jenkins-ci.org (https://repo.jenkins-ci.org/public/) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:424) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:201) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:180) > at > org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:213) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:179) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:338) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:358) > at > org.apache.maven.project.DefaultProjectBuilder$ModelResolverWrapper.resolveModel(DefaultProjectBuilder.java:1292) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.doLoadDependencyManagement(DefaultModelBuilder.java:1377) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$loadDependencyManagement$6(DefaultModelBuilder.java:1306) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$asSupplier$10(DefaultModelBuilder.java:1460) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache$CachingSupplier.get(DefaultModelCache.java:194) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:81) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:71) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.cache(DefaultModelBuilder.java:1444) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.loadDependencyManagement(DefaultModelBuilder.java:1300) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1230) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:579) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:198) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.doBuild(DefaultProjectBuilder.java:764) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.lambda$build$6(DefaultProjectBuilder.java:733) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not > find artifact org.jenkins-ci.main:jenkins-bom:pom:2.475-SNAPSHOT in > repo.jenkins-ci.org (https://repo.jenkins-ci.org/public/) > at > org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:42) > at > org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:456) > at > org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:279) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:490) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:399) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:201) > at > org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:180) > at > org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:213) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:179) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:338) > at > org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:358) > at > org.apache.maven.project.DefaultProjectBuilder$ModelResolverWrapper.resolveModel(DefaultProjectBuilder.java:1292) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.doLoadDependencyManagement(DefaultModelBuilder.java:1377) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$loadDependencyManagement$6(DefaultModelBuilder.java:1306) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.lambda$asSupplier$10(DefaultModelBuilder.java:1460) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache$CachingSupplier.get(DefaultModelCache.java:194) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:81) > at > org.apache.maven.internal.impl.resolver.DefaultModelCache.computeIfAbsent(DefaultModelCache.java:71) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.cache(DefaultModelBuilder.java:1444) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.loadDependencyManagement(DefaultModelBuilder.java:1300) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1230) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:579) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.build(DefaultModelBuilder.java:198) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.doBuild(DefaultProjectBuilder.java:764) > at > org.apache.maven.project.DefaultProjectBuilder$BuildSession.lambda$build$6(DefaultProjectBuilder.java:733) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > [ERROR] > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)