Skip to content

Commit 89b0062

Browse files
committed
Revert "BfDependencyCollector can share executorService between resolvers"
This reverts commit 02691c4.
1 parent f295e15 commit 89b0062

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,11 @@ public class BfDependencyCollector extends DependencyCollectorDelegate {
119119
public static final String CONFIG_PROP_THREADS = CONFIG_PROPS_PREFIX + "threads";
120120

121121
/**
122-
* The default value for {@link #CONFIG_PROP_THREADS}, default value {@code Runtime.getRuntime().availableProcessors()}.
122+
* The default value for {@link #CONFIG_PROP_THREADS}, default value 5.
123123
*
124124
* @since 1.9.0
125125
*/
126-
public static final int DEFAULT_THREADS = Runtime.getRuntime().availableProcessors();
126+
public static final int DEFAULT_THREADS = 5;
127127

128128
@Inject
129129
public BfDependencyCollector(
@@ -470,28 +470,19 @@ private ArtifactDescriptorResult resolveDescriptorForVersion(
470470
}
471471

472472
static class ParallelDescriptorResolver implements Closeable {
473-
private static volatile ExecutorService executorService;
473+
private final ExecutorService executorService;
474474

475475
/**
476476
* Artifact ID -> Future of DescriptorResolutionResult
477477
*/
478478
private final Map<String, Future<DescriptorResolutionResult>> results = new ConcurrentHashMap<>(256);
479479

480480
ParallelDescriptorResolver(int threads) {
481-
if (executorService == null) {
482-
synchronized (ParallelDescriptorResolver.class) {
483-
if (executorService == null) {
484-
// create only once, so that we can reuse it across multiple instances of this class
485-
// and avoid creating too many threads / recreating it for too many times
486-
executorService = ExecutorUtils.threadPool(
487-
threads, ParallelDescriptorResolver.class.getSimpleName() + "-");
488-
}
489-
}
490-
}
481+
this.executorService = ExecutorUtils.threadPool(threads, getClass().getSimpleName() + "-");
491482
}
492483

493484
void resolveDescriptors(Artifact artifact, Callable<DescriptorResolutionResult> callable) {
494-
results.computeIfAbsent(ArtifactIdUtils.toId(artifact), key -> executorService.submit(callable));
485+
results.computeIfAbsent(ArtifactIdUtils.toId(artifact), key -> this.executorService.submit(callable));
495486
}
496487

497488
void cacheVersionRangeDescriptor(Artifact artifact, DescriptorResolutionResult resolutionResult) {
@@ -503,7 +494,9 @@ Future<DescriptorResolutionResult> find(Artifact artifact) {
503494
}
504495

505496
@Override
506-
public void close() {}
497+
public void close() {
498+
executorService.shutdown();
499+
}
507500
}
508501

509502
static class DoneFuture<V> implements Future<V> {

0 commit comments

Comments
 (0)