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 419deb454 GH-1737: Revert partially parallel upload change (#1764)
419deb454 is described below

commit 419deb454be339cfbcb7cdd088f95a112f0a0ae2
Author: Tamas Cservenak <[email protected]>
AuthorDate: Wed Jan 28 19:15:26 2026 +0100

    GH-1737: Revert partially parallel upload change (#1764)
    
    Revert partially (connector only) commit:
    09c3fa9f1880058a2d29ca9ebcd3d2c23da0af4c
    
    Fixes #1737
---
 .../connector/basic/BasicRepositoryConnector.java  | 32 +++++++++++++++++++---
 src/site/markdown/configuration.md                 |  2 +-
 2 files changed, 29 insertions(+), 5 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 e39a5f5a1..3047a0ba0 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,6 +188,8 @@ 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);
 
@@ -209,7 +211,12 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                     checksumLocations,
                     null,
                     listener);
-            executor.execute(errorForwarder.wrap(task));
+            if (first) {
+                task.run();
+                first = false;
+            } else {
+                executor.execute(errorForwarder.wrap(task));
+            }
         }
 
         for (ArtifactDownload transfer : safeArtifactDownloads) {
@@ -249,7 +256,12 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                         providedChecksums,
                         listener);
             }
-            executor.execute(errorForwarder.wrap(task));
+            if (first) {
+                task.run();
+                first = false;
+            } else {
+                executor.execute(errorForwarder.wrap(task));
+            }
         }
 
         errorForwarder.await();
@@ -267,6 +279,8 @@ 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);
 
@@ -280,7 +294,12 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
             Runnable task = new PutTaskRunner(
                     location, transfer.getFile(), 
transfer.getFileTransformer(), checksumLocations, listener);
 
-            executor.execute(errorForwarder.wrap(task));
+            if (first) {
+                task.run();
+                first = false;
+            } else {
+                executor.execute(errorForwarder.wrap(task));
+            }
         }
 
         errorForwarder.await(); // make sure all artifacts are PUT before we 
go with Metadata
@@ -298,7 +317,12 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
 
                 Runnable task = new PutTaskRunner(location, 
transfer.getFile(), checksumLocations, listener);
 
-                executor.execute(errorForwarder.wrap(task));
+                if (first) {
+                    task.run();
+                    first = false;
+                } else {
+                    executor.execute(errorForwarder.wrap(task));
+                }
             }
 
             errorForwarder.await(); // make sure each group is done before 
starting next group
diff --git a/src/site/markdown/configuration.md 
b/src/site/markdown/configuration.md
index 05a75bdea..abee016a2 100644
--- a/src/site/markdown/configuration.md
+++ b/src/site/markdown/configuration.md
@@ -32,7 +32,7 @@ under the License.
 | `aether.checksums.algorithms`                                               
| String                | Comma-separated list of checksum algorithms with 
which checksums are validated (downloaded) and generated (uploaded). Resolver 
by default supports following algorithms: `MD5`, `SHA-1`, `SHA-256` and 
`SHA-512`. New algorithms can be added by implementing 
`ChecksumAlgorithmFactory` component.                                           
                                                       [...]
 | `aether.conflictResolver.verbose`                                           
| boolean               | Flag controlling the conflict resolver's verbose 
mode.                                                                           
                                                                                
                                                                                
                                                                                
                    [...]
 | `aether.connector.basic.threads` or `maven.artifact.threads`                
| int                   | Number of threads to use for uploading/downloading.   
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `aether.connector.basic.parallelPut`                                        
| boolean               | Enables or disables parallel PUT processing (parallel 
deploys) on basic connector globally or per remote repository. When disabled, 
connector behaves exactly as in Maven 3.8.x did: GETs are parallel while PUTs 
are sequential.                                                                 
                                                                                
                   [...]
+| `aether.connector.basic.parallelPut`                                        
| boolean               | Enables or disables parallel PUT processing (parallel 
deploys) on basic connector globally or per remote repository. When disabled, 
connector behaves exactly as in Maven 3.8.x did: GETs are parallel while PUTs 
are sequential. When enabled, connector will issue first PUT individually and 
only once completed the rest of PUTs in parallel.                               
                     [...]
 | `aether.connector.classpath.loader`                                         
| ClassLoader           | `ClassLoader` from which resources should be 
retrieved which start with the `classpath:` protocol.                           
                                                                                
                                                                                
                                                                                
                        [...]
 | `aether.connector.connectTimeout`                                           
| long                  | Connect timeout in milliseconds.                      
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
 | `aether.connector.http.bind.address`                                        
| String                | Set the outgoing interface (globally or per remote 
repository). Valid values are local accessible IP addresses or host names. The 
default will use the system's default route. Invalid addresses will result in 
HttpTransport creation failure.                                                 
                                                                                
                     [...]

Reply via email to