Skip to content

Commit 8a6bd7e

Browse files
cstamasmichael-o
authored andcommitted
[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
1 parent 8e4e785 commit 8a6bd7e

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ else if ( exception == null )
321321
session.getLocalRepositoryManager().getPathForRemoteMetadata(
322322
metadata, request.getRepository(), request.getRequestContext() ) );
323323

324+
metadataDownloading(
325+
session, trace, result.getRequest().getMetadata(), result.getRequest().getRepository() );
326+
324327
ResolveTask task =
325328
new ResolveTask( session, trace, result, installFile, checks, policy.getChecksumPolicy() );
326329
tasks.add( task );
@@ -354,6 +357,19 @@ else if ( exception == null )
354357

355358
for ( ResolveTask task : tasks )
356359
{
360+
/*
361+
* NOTE: Touch after registration with local repo to ensure concurrent resolution is not
362+
* rejected with "already updated" via session data when actual update to local repo is
363+
* still pending.
364+
*/
365+
for ( UpdateCheck<Metadata, MetadataTransferException> check : task.checks )
366+
{
367+
updateCheckManager.touchMetadata( task.session, check.setException( task.exception ) );
368+
}
369+
370+
metadataDownloaded( session, task.trace, task.request.getMetadata(), task.request.getRepository(),
371+
task.metadataFile, task.exception );
372+
357373
task.result.setException( task.exception );
358374
}
359375
}
@@ -513,7 +529,6 @@ private void shutdown( Executor executor )
513529
class ResolveTask
514530
implements Runnable
515531
{
516-
517532
final RepositorySystemSession session;
518533

519534
final RequestTrace trace;
@@ -548,8 +563,6 @@ public void run()
548563
Metadata metadata = request.getMetadata();
549564
RemoteRepository requestRepository = request.getRepository();
550565

551-
metadataDownloading( session, trace, metadata, requestRepository );
552-
553566
try
554567
{
555568
List<RemoteRepository> repositories = new ArrayList<>();
@@ -593,19 +606,6 @@ else if ( request.isDeleteLocalCopyIfMissing() && exception instanceof MetadataN
593606
{
594607
exception = new MetadataTransferException( metadata, requestRepository, e );
595608
}
596-
597-
/*
598-
* NOTE: Touch after registration with local repo to ensure concurrent resolution is not rejected with
599-
* "already updated" via session data when actual update to local repo is still pending.
600-
*/
601-
for ( UpdateCheck<Metadata, MetadataTransferException> check : checks )
602-
{
603-
updateCheckManager.touchMetadata( session, check.setException( exception ) );
604-
}
605-
606-
metadataDownloaded( session, trace, metadata, requestRepository, metadataFile, exception );
607609
}
608-
609610
}
610-
611611
}

0 commit comments

Comments
 (0)