in src/main/org/apache/ant/compress/resources/ZipScanner.java [77:126]
protected void fillMapsFromArchive(Resource src, String encoding,
Map fileEntries, Map matchFileEntries,
Map dirEntries, Map matchDirEntries) {
FileProvider fp = (FileProvider) src.as(FileProvider.class);
if (fp == null) {
super.fillMapsFromArchive(src, encoding, fileEntries,
matchFileEntries, dirEntries,
matchDirEntries);
return;
}
File srcFile = fp.getFile();
ZipArchiveEntry entry = null;
ZipFile zf = null;
try {
try {
zf = new ZipFile(srcFile, encoding);
} catch (ZipException ex) {
throw new BuildException("Problem reading " + srcFile, ex);
} catch (IOException ex) {
throw new BuildException("Problem opening " + srcFile, ex);
}
Enumeration e = zf.getEntries();
while (e.hasMoreElements()) {
entry = (ZipArchiveEntry) e.nextElement();
if (getSkipUnreadableEntries() && !zf.canReadEntryData(entry)) {
log(Messages.skippedIsUnreadable(entry));
continue;
}
Resource r = new ZipResource(srcFile, encoding, entry);
String name = entry.getName();
if (entry.isDirectory()) {
name = trimSeparator(name);
dirEntries.put(name, r);
if (match(name)) {
matchDirEntries.put(name, r);
}
} else {
fileEntries.put(name, r);
if (match(name)) {
matchFileEntries.put(name, r);
}
}
}
} finally {
ZipFile.closeQuietly(zf);
}
}