diff options
Diffstat (limited to 'src/launch/lombok')
-rw-r--r-- | src/launch/lombok/launch/ShadowClassLoader.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/launch/lombok/launch/ShadowClassLoader.java b/src/launch/lombok/launch/ShadowClassLoader.java index f2a21a4e..30ca6e97 100644 --- a/src/launch/lombok/launch/ShadowClassLoader.java +++ b/src/launch/lombok/launch/ShadowClassLoader.java @@ -364,16 +364,20 @@ class ShadowClassLoader extends ClassLoader { FileInputStream jar = new FileInputStream(jarLoc); try { ZipInputStream zip = new ZipInputStream(jar); - while (true) { - ZipEntry entry = zip.getNextEntry(); - if (entry == null) { - jarLocCache.put(key, false); - return false; + try { + while (true) { + ZipEntry entry = zip.getNextEntry(); + if (entry == null) { + jarLocCache.put(key, false); + return false; + } + if (!"META-INF/ShadowClassLoader".equals(entry.getName())) continue; + boolean v = sclFileContainsSuffix(zip, suffix); + jarLocCache.put(key, v); + return v; } - if (!"META-INF/ShadowClassLoader".equals(entry.getName())) continue; - boolean v = sclFileContainsSuffix(zip, suffix); - jarLocCache.put(key, v); - return v; + } finally { + zip.close(); } } finally { jar.close(); |