This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch maven-resolver-1.9.x
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
The following commit(s) were added to refs/heads/maven-resolver-1.9.x by this
push:
new 09c3fa9f1 [1.9.x] Remove hack from Basic connector (#1675)
09c3fa9f1 is described below
commit 09c3fa9f1880058a2d29ca9ebcd3d2c23da0af4c
Author: Tamas Cservenak <[email protected]>
AuthorDate: Thu Nov 20 15:28:09 2025 +0100
[1.9.x] Remove hack from Basic connector (#1675)
There was an issue https://github.com/apache/maven-resolver/issues/996 that
is still open and points to `MavenITmng4470AuthenticatedDeploymentToProxyTest`
IT, so lets trigger it and lets fix it. OTOH, it may be very well already
fixed...
Unrelated: fix for reproducer... (was wondering whole day why and what 11
things it resolved...)
---
.../connector/basic/BasicRepositoryConnector.java | 34 ++++------------------
.../ResolveTransitiveDependenciesParallel.java | 2 +-
.../http/DeferredCredentialsProvider.java | 6 ++--
.../aether/transport/http/SharingAuthCache.java | 15 ++++++----
4 files changed, 19 insertions(+), 38 deletions(-)
diff --git
a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
index 11e9a9133..e39a5f5a1 100644
---
a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
+++
b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
@@ -188,8 +188,6 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder();
List<ChecksumAlgorithmFactory> checksumAlgorithmFactories =
layout.getChecksumAlgorithmFactories();
- boolean first = true;
-
for (MetadataDownload transfer : safeMetadataDownloads) {
URI location = layout.getLocation(transfer.getMetadata(), false);
@@ -211,12 +209,7 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
checksumLocations,
null,
listener);
- if (first) {
- task.run();
- first = false;
- } else {
- executor.execute(errorForwarder.wrap(task));
- }
+ executor.execute(errorForwarder.wrap(task));
}
for (ArtifactDownload transfer : safeArtifactDownloads) {
@@ -256,12 +249,7 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
providedChecksums,
listener);
}
- if (first) {
- task.run();
- first = false;
- } else {
- executor.execute(errorForwarder.wrap(task));
- }
+ executor.execute(errorForwarder.wrap(task));
}
errorForwarder.await();
@@ -279,8 +267,6 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
Executor executor = getExecutor(parallelPut ?
safeArtifactUploads.size() + safeMetadataUploads.size() : 1);
RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder();
- boolean first = true;
-
for (ArtifactUpload transfer : safeArtifactUploads) {
URI location = layout.getLocation(transfer.getArtifact(), true);
@@ -293,12 +279,8 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
Runnable task = new PutTaskRunner(
location, transfer.getFile(),
transfer.getFileTransformer(), checksumLocations, listener);
- if (first) {
- task.run();
- first = false;
- } else {
- executor.execute(errorForwarder.wrap(task));
- }
+
+ executor.execute(errorForwarder.wrap(task));
}
errorForwarder.await(); // make sure all artifacts are PUT before we
go with Metadata
@@ -315,12 +297,8 @@ final class BasicRepositoryConnector implements
RepositoryConnector {
layout.getChecksumLocations(transfer.getMetadata(),
true, location);
Runnable task = new PutTaskRunner(location,
transfer.getFile(), checksumLocations, listener);
- if (first) {
- task.run();
- first = false;
- } else {
- executor.execute(errorForwarder.wrap(task));
- }
+
+ executor.execute(errorForwarder.wrap(task));
}
errorForwarder.await(); // make sure each group is done before
starting next group
diff --git
a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependenciesParallel.java
b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependenciesParallel.java
index c5825b6a1..6a5de0b86 100644
---
a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependenciesParallel.java
+++
b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependenciesParallel.java
@@ -216,7 +216,7 @@ public class ResolveTransitiveDependenciesParallel {
DependencyRequest dependencyRequest = new
DependencyRequest(collectRequest, null);
List<ArtifactResult> artifactResults =
system.resolveDependencies(session,
dependencyRequest).getArtifactResults();
- int resolved = 9;
+ int resolved = 0;
int fails = 0;
for (ArtifactResult artifactResult : artifactResults) {
if (artifactResult.isResolved()) {
diff --git
a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
index 664e8fb06..c38d9e5ef 100644
---
a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
+++
b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
@@ -20,9 +20,9 @@ package org.eclipse.aether.transport.http;
import java.net.InetAddress;
import java.net.UnknownHostException;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
@@ -39,11 +39,11 @@ final class DeferredCredentialsProvider implements
CredentialsProvider {
private final CredentialsProvider delegate;
- private final Map<AuthScope, Factory> factories;
+ private final ConcurrentHashMap<AuthScope, Factory> factories;
DeferredCredentialsProvider() {
delegate = new BasicCredentialsProvider();
- factories = new HashMap<>();
+ factories = new ConcurrentHashMap<>();
}
public void setCredentials(AuthScope authScope, Factory factory) {
diff --git
a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
index f55b822ac..d7ed9c591 100644
---
a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
+++
b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
@@ -18,8 +18,8 @@
*/
package org.eclipse.aether.transport.http;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScheme;
@@ -33,11 +33,11 @@ final class SharingAuthCache implements AuthCache {
private final LocalState state;
- private final Map<HttpHost, AuthScheme> authSchemes;
+ private final ConcurrentHashMap<HttpHost, AuthScheme> authSchemes;
SharingAuthCache(LocalState state) {
this.state = state;
- authSchemes = new HashMap<>();
+ authSchemes = new ConcurrentHashMap<>();
}
private static HttpHost toKey(HttpHost host) {
@@ -54,17 +54,20 @@ final class SharingAuthCache implements AuthCache {
AuthScheme authScheme = authSchemes.get(host);
if (authScheme == null) {
authScheme = state.getAuthScheme(host);
- authSchemes.put(host, authScheme);
+ if (authScheme != null) {
+ authSchemes.put(host, authScheme);
+ }
}
return authScheme;
}
@Override
public void put(HttpHost host, AuthScheme authScheme) {
+ host = toKey(host);
if (authScheme != null) {
- authSchemes.put(toKey(host), authScheme);
+ authSchemes.put(host, authScheme);
} else {
- remove(host);
+ authSchemes.remove(host);
}
}