This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch 1.6.x_backports in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
commit 142c31b226c9c0477e1b4db2733e85e4dcd6808a Author: Tamas Cservenak <ta...@cservenak.net> AuthorDate: Sun May 2 13:19:54 2021 +0200 [MRESOLVER-177] Move pre-/post-processing of metadata from ResolveTask to DefaultMetadataResolver Move out from ResolveTask the read/write of resolver-status.properties file, perform those serially in caller thread context instead. This closes #104 --- .../internal/impl/DefaultMetadataResolver.java | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java index 4fe065a..88899fd 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java @@ -321,6 +321,9 @@ public class DefaultMetadataResolver session.getLocalRepositoryManager().getPathForRemoteMetadata( metadata, request.getRepository(), request.getRequestContext() ) ); + metadataDownloading( + session, trace, result.getRequest().getMetadata(), result.getRequest().getRepository() ); + ResolveTask task = new ResolveTask( session, trace, result, installFile, checks, policy.getChecksumPolicy() ); tasks.add( task ); @@ -354,6 +357,19 @@ public class DefaultMetadataResolver for ( ResolveTask task : tasks ) { + /* + * NOTE: Touch after registration with local repo to ensure concurrent resolution is not + * rejected with "already updated" via session data when actual update to local repo is + * still pending. + */ + for ( UpdateCheck<Metadata, MetadataTransferException> check : task.checks ) + { + updateCheckManager.touchMetadata( task.session, check.setException( task.exception ) ); + } + + metadataDownloaded( session, task.trace, task.request.getMetadata(), task.request.getRepository(), + task.metadataFile, task.exception ); + task.result.setException( task.exception ); } } @@ -513,7 +529,6 @@ public class DefaultMetadataResolver class ResolveTask implements Runnable { - final RepositorySystemSession session; final RequestTrace trace; @@ -548,8 +563,6 @@ public class DefaultMetadataResolver Metadata metadata = request.getMetadata(); RemoteRepository requestRepository = request.getRepository(); - metadataDownloading( session, trace, metadata, requestRepository ); - try { List<RemoteRepository> repositories = new ArrayList<>(); @@ -593,19 +606,6 @@ public class DefaultMetadataResolver { exception = new MetadataTransferException( metadata, requestRepository, e ); } - - /* - * NOTE: Touch after registration with local repo to ensure concurrent resolution is not rejected with - * "already updated" via session data when actual update to local repo is still pending. - */ - for ( UpdateCheck<Metadata, MetadataTransferException> check : checks ) - { - updateCheckManager.touchMetadata( session, check.setException( exception ) ); - } - - metadataDownloaded( session, trace, metadata, requestRepository, metadataFile, exception ); } - } - }