You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by if...@apache.org on 2014/09/02 16:14:14 UTC

git commit: cleanup: release artifact resolver resources more eagerly

Repository: maven
Updated Branches:
  refs/heads/master 2909b5a32 -> a5b92f2d0


cleanup: release artifact resolver resources more eagerly

Set resolver executor thread context classloader to null by
default. This allows collection of class realms that triggered
thread creation (one of plugin realms, typically).

Use Disposable#dispose to shutdown resolver executor server,
remove now redundant #finilaze() implementation.

Signed-off-by: Igor Fedorenko <if...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a5b92f2d
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a5b92f2d
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a5b92f2d

Branch: refs/heads/master
Commit: a5b92f2d0307fcdccedd9553d1063196eeff5994
Parents: 2909b5a
Author: Igor Fedorenko <if...@apache.org>
Authored: Tue Sep 2 08:14:49 2014 -0400
Committer: Igor Fedorenko <if...@apache.org>
Committed: Tue Sep 2 08:14:49 2014 -0400

----------------------------------------------------------------------
 .../resolver/DefaultArtifactResolver.java       | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/a5b92f2d/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
----------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
index f5a2349..17ca487 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
@@ -60,6 +60,7 @@ import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.LocalRepositoryManager;
@@ -71,7 +72,7 @@ import org.eclipse.aether.resolution.ArtifactResult;
  */
 @Component( role = ArtifactResolver.class )
 public class DefaultArtifactResolver
-    implements ArtifactResolver
+    implements ArtifactResolver, Disposable
 {
     @Requirement 
     private Logger logger;
@@ -120,17 +121,6 @@ public class DefaultArtifactResolver
         }
     }
 
-    @Override
-    protected void finalize()
-        throws Throwable
-    {
-        if ( executor instanceof ExecutorService )
-        {
-            ( (ExecutorService) executor ).shutdown();
-        }
-        super.finalize();
-    }
-
     private RepositorySystemSession getSession( ArtifactRepository localRepository )
     {
         return LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
@@ -571,6 +561,7 @@ public class DefaultArtifactResolver
         {
             Thread newThread = new Thread( GROUP, r, "resolver-" + THREAD_NUMBER.getAndIncrement() );
             newThread.setDaemon( true );
+            newThread.setContextClassLoader( null );
             return newThread;
         }
     }
@@ -640,4 +631,13 @@ public class DefaultArtifactResolver
 
     }
 
+    @Override
+    public void dispose()
+    {
+        if ( executor instanceof ExecutorService )
+        {
+            ( (ExecutorService) executor ).shutdownNow();
+        }
+    }
+
 }