You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2026/01/28 18:15:31 UTC
(maven-resolver) branch maven-resolver-1.9.x updated: GH-1737: Revert partially parallel upload change (#1764)
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 <ta...@cservenak.net>
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. [...]