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 2021/05/02 11:22:26 UTC

[maven-resolver] 01/01: [MRESOLVER-153] Move out from ResolveTask read/writes

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

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

commit 3102df3aa26b7033fafd9ae1c7b06728bcfeee34
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sun May 2 13:19:54 2021 +0200

    [MRESOLVER-153] Move out from ResolveTask read/writes
    
    Move out from ResolveTask the read/write of resolver-status.properties
    file, perform those serially in caller thread context instead.
---
 .../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 cd217b5..8774364 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
@@ -323,6 +323,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 );
@@ -356,6 +359,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 );
                 }
             }
@@ -515,7 +531,6 @@ public class DefaultMetadataResolver
     class ResolveTask
         implements Runnable
     {
-
         final RepositorySystemSession session;
 
         final RequestTrace trace;
@@ -550,8 +565,6 @@ public class DefaultMetadataResolver
             Metadata metadata = request.getMetadata();
             RemoteRepository requestRepository = request.getRepository();
 
-            metadataDownloading( session, trace, metadata, requestRepository );
-
             try
             {
                 List<RemoteRepository> repositories = new ArrayList<>();
@@ -595,19 +608,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 );
         }
-
     }
-
 }