From 440c2fb03c6b4e6dabc95cbd73be492dcfdde35a Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Wed, 12 Oct 2016 17:27:54 -0700 Subject: [PATCH] 8167630: jdeps --generate-module-info forgets to close the resource after checking any unnamed package Reviewed-by: lancea, ksrini --- .../com/sun/tools/jdeps/JdepsTask.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java index 9f7e0d232f7..1c3e61dfff1 100644 --- a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java +++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java @@ -680,20 +680,21 @@ class JdepsTask { private boolean genModuleInfo(JdepsConfiguration config) throws IOException { // check if any JAR file contains unnamed package for (String arg : inputArgs) { - Optional classInUnnamedPackage = - ClassFileReader.newInstance(Paths.get(arg)) - .entries().stream() - .filter(n -> n.endsWith(".class")) - .filter(cn -> toPackageName(cn).isEmpty()) - .findFirst(); + try (ClassFileReader reader = ClassFileReader.newInstance(Paths.get(arg))) { + Optional classInUnnamedPackage = + reader.entries().stream() + .filter(n -> n.endsWith(".class")) + .filter(cn -> toPackageName(cn).isEmpty()) + .findFirst(); - if (classInUnnamedPackage.isPresent()) { - if (classInUnnamedPackage.get().equals("module-info.class")) { - reportError("err.genmoduleinfo.not.jarfile", arg); - } else { - reportError("err.genmoduleinfo.unnamed.package", arg); + if (classInUnnamedPackage.isPresent()) { + if (classInUnnamedPackage.get().equals("module-info.class")) { + reportError("err.genmoduleinfo.not.jarfile", arg); + } else { + reportError("err.genmoduleinfo.unnamed.package", arg); + } + return false; } - return false; } }