Author: bentmann
Date: Sat Nov 7 18:49:06 2009
New Revision: 833730
URL:
http://svn.apache.org/viewvc?rev=833730&view=revLog:
[ARCHETYPE-270] RemoteCatalogArchetypeDataSource leaves open wagon connection when archetype catalog retrieval fails
Modified:
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
URL:
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java?rev=833730&r1=833729&r2=833730&view=diff==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java Sat Nov 7 18:49:06 2009
@@ -64,9 +64,15 @@
Repository wagonRepository = new Repository( "archetype", repository );
Wagon wagon = wagonManager.getWagon( wagonRepository );
File catalog = File.createTempFile( "archetype-catalog", ".xml" );
- wagon.connect( wagonRepository );
- wagon.get( "archetype-catalog.xml", catalog );
- wagon.disconnect();
+ try
+ {
+ wagon.connect( wagonRepository );
+ wagon.get( "archetype-catalog.xml", catalog );
+ }
+ finally
+ {
+ disconnectWagon( wagon );
+ }
return readCatalog( new FileReader( catalog ) );
}
catch ( ArchetypeDataSourceException e )
@@ -85,9 +91,15 @@
Repository wagonRepository = new Repository( "archetype", repositoryPath );
Wagon wagon = wagonManager.getWagon( wagonRepository );
File catalog = File.createTempFile( "archetype-catalog", ".xml" );
- wagon.connect( wagonRepository );
- wagon.get( fileName , catalog );
- wagon.disconnect();
+ try
+ {
+ wagon.connect( wagonRepository );
+ wagon.get( fileName, catalog );
+ }
+ finally
+ {
+ disconnectWagon( wagon );
+ }
return readCatalog( new FileReader( catalog ) );
}
catch ( Exception ex )
@@ -142,4 +154,17 @@
{
throw new ArchetypeDataSourceException( "Not supported yet." );
}
+
+ private void disconnectWagon( Wagon wagon )
+ {
+ try
+ {
+ wagon.disconnect();
+ }
+ catch ( Exception e )
+ {
+ getLogger().warn( "Problem disconnecting from wagon - ignoring: " + e.getMessage() );
+ }
+ }
+
}