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()