mirror of
https://github.com/apache/poi.git
synced 2025-03-06 00:49:36 +00:00
[bug-65738] do not treat zip directories as parts
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895788 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5ff9c60cbf
commit
11b0cf965c
@ -308,6 +308,7 @@ public final class ZipPackage extends OPCPackage {
|
||||
// its relationship exists, and then it won't tie up)
|
||||
final List<EntryTriple> entries =
|
||||
Collections.list(zipArchive.getEntries()).stream()
|
||||
.filter(zipArchiveEntry -> !ignoreEntry(zipArchiveEntry))
|
||||
.map(zae -> new EntryTriple(zae, contentTypeManager))
|
||||
.filter(mm -> mm.partName != null)
|
||||
.sorted()
|
||||
@ -320,6 +321,11 @@ public final class ZipPackage extends OPCPackage {
|
||||
return newPartList;
|
||||
}
|
||||
|
||||
private static boolean ignoreEntry(ZipArchiveEntry zipArchiveEntry) {
|
||||
String name = zipArchiveEntry.getName();
|
||||
return name.startsWith("[trash]") || name.endsWith("/");
|
||||
}
|
||||
|
||||
private class EntryTriple implements Comparable<EntryTriple> {
|
||||
final ZipArchiveEntry zipArchiveEntry;
|
||||
final PackagePartName partName;
|
||||
@ -331,7 +337,7 @@ public final class ZipPackage extends OPCPackage {
|
||||
final String entryName = zipArchiveEntry.getName();
|
||||
PackagePartName ppn = null;
|
||||
// ignore trash parts
|
||||
if (!entryName.startsWith("[trash]")) {
|
||||
if (!ignoreEntry(zipArchiveEntry)) {
|
||||
try {
|
||||
// We get an error when we parse [Content_Types].xml
|
||||
// because it's not a valid URI.
|
||||
|
Loading…
x
Reference in New Issue
Block a user