You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2009/04/08 06:09:12 UTC

svn commit: r762578 - /maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java

Author: ogusakov
Date: Tue Apr  7 00:23:54 2009
New Revision: 762578

URL: http://svn.apache.org/viewvc?rev=762578&view=rev
Log:
[MERCURY-108] - removed the thread leak

Modified:
    maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=762578&r1=762577&r2=762578&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Tue Apr  7 00:23:54 2009
@@ -99,9 +99,7 @@
     // TODO - replace with known Transport's protocols. Should be similar to RepositoryReader/Writer registration
     private static final String[] _protocols = new String[] { "http", "https", "dav", "webdav" };
 
-    // TODO replace with Transport
-    DefaultRetriever _transport;
-
+    private HashSet<Server> _servers;
     // ---------------------------------------------------------------------------------------------------------------
     RemoteRepository _repo;
 
@@ -160,19 +158,10 @@
         else
             _localRepos = localRepos;
 
-        try
-        {
-            // TODO 2008-07-29 og: here I should analyze Server protocol
-            // and come with appropriate Transport implementation
-            _transport = new DefaultRetriever();
-            HashSet<Server> servers = new HashSet<Server>( 1 );
-            servers.add( repo.getServer() );
-            _transport.setServers( servers );
-        }
-        catch ( HttpClientException e )
-        {
-            throw new RepositoryException( e );
-        }
+        // TODO 2008-07-29 og: here I should analyze Server protocol
+        // and come with appropriate Transport implementation
+        _servers = new HashSet<Server>( 1 );
+        _servers.add( repo.getServer() );
     }
 
     // ---------------------------------------------------------------------------------------------------------------
@@ -424,7 +413,18 @@
             drr.addBinding( pomBinding );
         }
 
-        RetrievalResponse resp = _transport.retrieve( drr );
+        DefaultRetriever transport;
+        try
+        {
+            transport = new DefaultRetriever();
+        }
+        catch ( HttpClientException e )
+        {
+            throw new RepositoryException( e );
+        }
+        transport.setServers( _servers );
+        RetrievalResponse resp = transport.retrieve( drr );
+        transport.stop();
 
         if ( resp.hasExceptions() )
         {
@@ -531,6 +531,8 @@
         
         RetrievalResponse response = retriever.retrieve( request );
         
+        retriever.stop();
+        
         if ( response.hasExceptions() )
         {
             // record all bugs on the first artifact as jetty transport does not 
@@ -1065,7 +1067,10 @@
             DefaultRetrievalRequest request = new DefaultRetrievalRequest();
             request.addBinding( binding );
 
-            RetrievalResponse response = _transport.retrieve( request );
+            DefaultRetriever transport = new DefaultRetriever();
+            transport.setServers( _servers );
+            RetrievalResponse response = transport.retrieve( request );
+            transport.stop();
 
             if ( response.hasExceptions() )
             {
@@ -1084,6 +1089,10 @@
         {
             throw new MetadataReaderException( e );
         }
+        catch ( HttpClientException e )
+        {
+            throw new MetadataReaderException(e);
+        }
         finally
         {
             if ( fis != null )
@@ -1104,8 +1113,8 @@
 
     public void close()
     {
-        if( _transport != null )
-            _transport.stop();
+//        if( _transport != null )
+//            _transport.stop();
     }
 
     public String[] getProtocols()