You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/07/14 14:22:08 UTC

[maven-resolver] branch buildfix-1-thread created (now 7aa26d2)

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

tibordigana pushed a change to branch buildfix-1-thread
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git.


      at 7aa26d2  dependency collector without multiple threads

This branch includes the following new commits:

     new 7aa26d2  dependency collector without multiple threads

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-resolver] 01/01: dependency collector without multiple threads

Posted by ti...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch buildfix-1-thread
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit 7aa26d2b7d145f7154087ffab16cb9df7db17d53
Author: tibordigana <ti...@apache.org>
AuthorDate: Sun Jul 14 16:22:00 2019 +0200

    dependency collector without multiple threads
---
 .../impl/collect/DefaultDependencyCollector.java   | 45 ++++++++--------------
 1 file changed, 15 insertions(+), 30 deletions(-)

diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
index 9d37435..2da7617 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
@@ -33,9 +33,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import static java.util.Objects.requireNonNull;
-import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -152,7 +150,7 @@ public class DefaultDependencyCollector
                 new LinkedBlockingQueue<Runnable>(), new WorkerThreadFactory( "artifact-descriptor-resolver" ) );
         try
         {
-            return collectDependenciesWithExecutor( session, request, executor );
+            return collectDependenciesWithExecutor( session, request );
         }
         finally
         {
@@ -160,8 +158,7 @@ public class DefaultDependencyCollector
         }
     }
 
-    private CollectResult collectDependenciesWithExecutor( RepositorySystemSession session, CollectRequest request,
-                                                           ExecutorService executor )
+    private CollectResult collectDependenciesWithExecutor( RepositorySystemSession session, CollectRequest request )
         throws DependencyCollectionException
     {
         session = DependencyCollectionUtils.optimizeSession( session );
@@ -180,7 +177,7 @@ public class DefaultDependencyCollector
         context.setCollectResult( result );
         context.setTrace( trace );
 
-        Args args = new Args( session, trace, null, null, context, null, request, executor );
+        Args args = new Args( session, trace, null, null, context, null, request, null );
         context.setArgs( args );
 
         Map<String, Object> stats = LOGGER.isDebugEnabled() ? new LinkedHashMap<String, Object>() : null;
@@ -233,7 +230,7 @@ public class DefaultDependencyCollector
 
             DefaultVersionFilterContext versionContext = new DefaultVersionFilterContext( session );
 
-            args = new Args( session, trace, pool, nodes, context, versionContext, request, executor );
+            args = new Args( session, trace, pool, nodes, context, versionContext, request, null );
             Results results = new Results( result, session );
             context.setArgs( args );
             context.setResults( results );
@@ -418,13 +415,7 @@ public class DefaultDependencyCollector
 
     private Future<DependencyContext> asyncProcessDependency( final DependencyContext dc )
     {
-        return dc.args.executor.submit( new Callable<DependencyContext>()
-        {
-            public DependencyContext call()
-            {
-                return processDependency( dc );
-            }
-        } );
+        return new FutureResult<>( processDependency( dc ) );
     }
 
     private DependencyContext processDependency( DependencyContext dc )
@@ -628,24 +619,18 @@ public class DefaultDependencyCollector
         Future<ArtifactDescriptorResult> descriptorResult = pool.getDescriptor( key, descriptorRequest );
         if ( descriptorResult == null )
         {
-            descriptorResult = args.executor.submit( new Callable<ArtifactDescriptorResult>()
+            ArtifactDescriptorResult result = null;
+            try
             {
-                public ArtifactDescriptorResult call()
-                {
-                    try
-                    {
-                        return descriptorReader.readArtifactDescriptor( session, descriptorRequest );
-                    }
-                    catch ( ArtifactDescriptorException e )
-                    {
-                        results.addException( d, e, args.nodes );
-                        pool.putDescriptor( key, e );
-                        return null;
-                    }
-                }
-            } );
+                result = descriptorReader.readArtifactDescriptor( session, descriptorRequest );
+            }
+            catch ( ArtifactDescriptorException e )
+            {
+                results.addException( d, e, args.nodes );
+                pool.putDescriptor( key, e );
+            }
 
-            pool.putDescriptor( key, descriptorResult );
+            pool.putDescriptor( key, new FutureResult<>( result ) );
         }
         else if ( descriptorResult == DataPool.NO_DESCRIPTOR )
         {