This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new f299b25d3 Remove hack from Basic connector (#1676)
f299b25d3 is described below

commit f299b25d31f20954497bb7f05249b351848ef7b4
Author: Tamas Cservenak <[email protected]>
AuthorDate: Thu Nov 20 16:26:08 2025 +0100

    Remove hack from Basic connector (#1676)
    
    Similar as in 1.9.x, but here the Executor may be null (threading and 
pooling has been reworked) so we need to check for executor being non-null.
---
 .../aether/connector/basic/BasicRepositoryConnector.java | 16 ++++------------
 .../transport/apache/DeferredCredentialsProvider.java    |  6 +++---
 .../aether/transport/apache/SharingAuthCache.java        | 15 +++++++++------
 3 files changed, 16 insertions(+), 21 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 fd2d51e93..7f76efa7a 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
@@ -217,8 +217,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);
 
@@ -240,9 +238,8 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                     checksumLocations,
                     null,
                     listener);
-            if (executor == null || first) {
+            if (executor == null) {
                 task.run();
-                first = false;
             } else {
                 executor.submit(errorForwarder.wrap(task));
             }
@@ -285,9 +282,8 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                         providedChecksums,
                         listener);
             }
-            if (executor == null || first) {
+            if (executor == null) {
                 task.run();
-                first = false;
             } else {
                 executor.submit(errorForwarder.wrap(task));
             }
@@ -309,8 +305,6 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                 getExecutor(false, parallelPut ? safeArtifactUploads.size() + 
safeMetadataUploads.size() : 1);
         RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder();
 
-        boolean first = true;
-
         for (ArtifactUpload transfer : safeArtifactUploads) {
             URI location = layout.getLocation(transfer.getArtifact(), true);
 
@@ -322,9 +316,8 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                     layout.getChecksumLocations(transfer.getArtifact(), true, 
location);
 
             Runnable task = new PutTaskRunner(location, transfer.getPath(), 
checksumLocations, listener);
-            if (executor == null || first) {
+            if (executor == null) {
                 task.run();
-                first = false;
             } else {
                 executor.submit(errorForwarder.wrap(task));
             }
@@ -344,9 +337,8 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                         layout.getChecksumLocations(transfer.getMetadata(), 
true, location);
 
                 Runnable task = new PutTaskRunner(location, 
transfer.getPath(), checksumLocations, listener);
-                if (executor == null || first) {
+                if (executor == null) {
                     task.run();
-                    first = false;
                 } else {
                     executor.submit(errorForwarder.wrap(task));
                 }
diff --git 
a/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/DeferredCredentialsProvider.java
 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/DeferredCredentialsProvider.java
index bb0b20188..fd32f1dd7 100644
--- 
a/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/DeferredCredentialsProvider.java
+++ 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/DeferredCredentialsProvider.java
@@ -20,9 +20,9 @@ package org.eclipse.aether.transport.apache;
 
 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-apache/src/main/java/org/eclipse/aether/transport/apache/SharingAuthCache.java
 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/SharingAuthCache.java
index ef4c25163..d868eacaf 100644
--- 
a/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/SharingAuthCache.java
+++ 
b/maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/SharingAuthCache.java
@@ -18,8 +18,8 @@
  */
 package org.eclipse.aether.transport.apache;
 
-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);
         }
     }
 

Reply via email to