#vulnerable code 
                             public void testJarUnarchiveAll() throws Exception {
		final File input = getFile("bla.jar");
        final InputStream is = new FileInputStream(input);
        final ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream("jar", is);
        
        ArchiveEntry entry = in.getNextEntry();
		while (entry != null) {
			File archiveEntry = new File(dir, entry.getName());
			archiveEntry.getParentFile().mkdirs();
			if(entry.isDirectory()){
				archiveEntry.mkdir();
				entry = in.getNextEntry();
				continue;
			}
			OutputStream out = new FileOutputStream(archiveEntry);
			IOUtils.copy(in, out);
			out.close();
			entry = in.getNextEntry();
		}
		
		in.close();
	} 
                            #location 21 
                            #vulnerability type RESOURCE_LEAK
#fixed code
                             public void testJarUnarchiveAll() throws Exception {
		final File input = getFile("bla.jar");
        final InputStream is = new FileInputStream(input);
        final ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream("jar", is);
        
        ArchiveEntry entry = in.getNextEntry();
		while (entry != null) {
			File archiveEntry = new File(dir, entry.getName());
			archiveEntry.getParentFile().mkdirs();
			if(entry.isDirectory()){
				archiveEntry.mkdir();
				entry = in.getNextEntry();
				continue;
			}
			OutputStream out = new FileOutputStream(archiveEntry);
			IOUtils.copy(in, out);
			out.close();
			entry = in.getNextEntry();
		}
		
		in.close();
		is.close();
	}