Close JarInputStream and FileInputStream after usage.
Otherwise a lot of open files hang around, which might lead to resource leaks
and maybe slow down processing.
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1589261 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtils.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtils.java
index 41a5f2d..06375e5 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtils.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/ClassFileVisitorUtils.java
@@ -94,20 +94,24 @@
throws IOException
{
JarInputStream in = new JarInputStream( url.openStream() );
-
- JarEntry entry = null;
-
- while ( ( entry = in.getNextJarEntry() ) != null )
+ try
{
- String name = entry.getName();
+ JarEntry entry = null;
- if ( name.endsWith( ".class" ) )
+ while ( ( entry = in.getNextJarEntry() ) != null )
{
- visitClass( name, in, visitor );
+ String name = entry.getName();
+
+ if ( name.endsWith( ".class" ) )
+ {
+ visitClass( name, in, visitor );
+ }
}
}
-
- in.close();
+ finally
+ {
+ in.close();
+ }
}
private static void acceptDirectory( File directory, ClassFileVisitor visitor )
@@ -134,9 +138,14 @@
File file = new File( directory, path );
FileInputStream in = new FileInputStream( file );
- visitClass( path, in, visitor );
-
- in.close();
+ try
+ {
+ visitClass( path, in, visitor );
+ }
+ finally
+ {
+ in.close();
+ }
}
}