Skip to content

Commit 01ebbe5

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 apache#104
1 parent 8028de1 commit 01ebbe5

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

+16-16
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,9 @@ else if ( exception == null )
323323
session.getLocalRepositoryManager().getPathForRemoteMetadata(
324324
metadata, request.getRepository(), request.getRequestContext() ) );
325325

326+
metadataDownloading(
327+
session, trace, result.getRequest().getMetadata(), result.getRequest().getRepository() );
328+
326329
ResolveTask task =
327330
new ResolveTask( session, trace, result, installFile, checks, policy.getChecksumPolicy() );
328331
tasks.add( task );
@@ -356,6 +359,19 @@ else if ( exception == null )
356359

357360
for ( ResolveTask task : tasks )
358361
{
362+
/*
363+
* NOTE: Touch after registration with local repo to ensure concurrent resolution is not
364+
* rejected with "already updated" via session data when actual update to local repo is
365+
* still pending.
366+
*/
367+
for ( UpdateCheck<Metadata, MetadataTransferException> check : task.checks )
368+
{
369+
updateCheckManager.touchMetadata( task.session, check.setException( task.exception ) );
370+
}
371+
372+
metadataDownloaded( session, task.trace, task.request.getMetadata(), task.request.getRepository(),
373+
task.metadataFile, task.exception );
374+
359375
task.result.setException( task.exception );
360376
}
361377
}
@@ -515,7 +531,6 @@ private void shutdown( Executor executor )
515531
class ResolveTask
516532
implements Runnable
517533
{
518-
519534
final RepositorySystemSession session;
520535

521536
final RequestTrace trace;
@@ -550,8 +565,6 @@ public void run()
550565
Metadata metadata = request.getMetadata();
551566
RemoteRepository requestRepository = request.getRepository();
552567

553-
metadataDownloading( session, trace, metadata, requestRepository );
554-
555568
try
556569
{
557570
List<RemoteRepository> repositories = new ArrayList<>();
@@ -595,19 +608,6 @@ else if ( request.isDeleteLocalCopyIfMissing() && exception instanceof MetadataN
595608
{
596609
exception = new MetadataTransferException( metadata, requestRepository, e );
597610
}
598-
599-
/*
600-
* NOTE: Touch after registration with local repo to ensure concurrent resolution is not rejected with
601-
* "already updated" via session data when actual update to local repo is still pending.
602-
*/
603-
for ( UpdateCheck<Metadata, MetadataTransferException> check : checks )
604-
{
605-
updateCheckManager.touchMetadata( session, check.setException( exception ) );
606-
}
607-
608-
metadataDownloaded( session, trace, metadata, requestRepository, metadataFile, exception );
609611
}
610-
611612
}
612-
613613
}

0 commit comments

Comments
 (0)