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

[jira] [Assigned] (MRESOLVER-413) BF collector causes failure when -Dmaven.artifact.threads=1 used

     [ https://issues.apache.org/jira/browse/MRESOLVER-413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Cservenak reassigned MRESOLVER-413:
-----------------------------------------

    Assignee: Tamas Cservenak

> BF collector causes failure when -Dmaven.artifact.threads=1 used
> ----------------------------------------------------------------
>
>                 Key: MRESOLVER-413
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-413
>             Project: Maven Resolver
>          Issue Type: Bug
>          Components: Resolver
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 2.0.0
>
>
> When Maven invoked with {{-Dmaven.artifact.threads=1}} the BF collector fails in IT MavenITmng2305MultipleProxiesTest:
> {noformat}
> [ERROR] Invalid poolSize: 1. Must be greater than 1.
> java.lang.IllegalArgumentException: Invalid poolSize: 1. Must be greater than 1.
>     at org.eclipse.aether.util.concurrency.ExecutorUtils.threadPool (ExecutorUtils.java:46)
>     at org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector$ParallelDescriptorResolver.<init> (BfDependencyCollector.java:488)
>     at org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.doCollectDependencies (BfDependencyCollector.java:156)
>     at org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies (DependencyCollectorDelegate.java:222)
>     at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:87)
>     at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:305)
>     at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:157)
> {noformat}
> This is wrong, as according to https://maven.apache.org/resolver/configuration.html means "Number of threads to use for collecting POMs and version ranges in BF collector." and the configuration should accept 1 as well.
> Or reconsider to NOT observe this configuration for BF thread pool, as the configuration may be set via two (new and old) keys: {{aether.dependencyCollector.bf.threads}} or {{maven.artifact.threads}}. Latter is probably wrong choice.
> Note: the IT MavenITmng2305MultipleProxiesTest sets {{-Dmaven.artifact.threads=1}} along with comment: "disable concurrent downloading as not all wagons (e.g. wagon-lightweight-http) are thread-safe", so here, the intent was not "set BF to single threaded", actually, the IT predates BF.
> Proposal: do not use {{maven.artifact.threads}} as "fallback" for configuration, and fix doco that "int must be > 1"



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