Index: deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/impl/ModuleScanner.java =================================================================== --- deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/impl/ModuleScanner.java (revision 24039) +++ deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/impl/ModuleScanner.java (working copy) @@ -97,24 +97,30 @@ */ protected void addScanJar(File jarFile) throws IOException { JarFile jf = new JarFile(jarFile); - - Enumeration entriesEnum = jf.entries(); - while(entriesEnum.hasMoreElements()) { - JarEntry je = entriesEnum.nextElement(); - if (je.getName().endsWith(".class")) { - if (processAllClasses) { - addEntry(je); - } else { - // check if it contains top level annotations... - ReadableByteChannel channel = Channels.newChannel(jf.getInputStream(je)); - if (channel!=null) { - if (classFile.containsAnnotation(channel, je.getSize())) { - addEntry(je); + try { + + Enumeration entriesEnum = jf.entries(); + while (entriesEnum.hasMoreElements()) { + JarEntry je = entriesEnum.nextElement(); + if (je.getName().endsWith(".class")) { + if (processAllClasses) { + addEntry(je); + } else { + // check if it contains top level annotations... + ReadableByteChannel channel = Channels.newChannel(jf + .getInputStream(je)); + if (channel != null) { + if (classFile.containsAnnotation(channel, je + .getSize())) { + addEntry(je); + } } } } } + } finally { + jf.close(); } }