Skip to content

Commit bfa43f9

Browse files
committed
Fix last JVM file not having size set by normal means
1 parent 5e63480 commit bfa43f9

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/main/java/software/coley/lljzip/format/read/JvmZipReader.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ else if (data.getInt(jvmBaseFileOffset) == ZipPatterns.CENTRAL_DIRECTORY_FILE_HE
144144
// Add the earliest central directory offset, which serves as the upper bound to search against for the
145145
// last local file header entry's file data contents.
146146
entryOffsets.add(earliestCdfh);
147+
// Add the end of central directory
148+
entryOffsets.add(endOfCentralDirectoryOffset);
147149

148150
// Create the local file entries
149151
for (CentralDirectoryFileHeader directory : zip.getCentralDirectories()) {
@@ -152,12 +154,12 @@ else if (data.getInt(jvmBaseFileOffset) == ZipPatterns.CENTRAL_DIRECTORY_FILE_HE
152154
if (!offsets.contains(offset) && data.getInt(offset) == ZipPatterns.LOCAL_FILE_HEADER_QUAD) {
153155
try {
154156
LocalFileHeader file = newLocalFileHeader();
155-
directory.link(file);
156-
file.link(directory);
157157
if (file instanceof JvmLocalFileHeader) {
158158
((JvmLocalFileHeader) file).setOffsets(entryOffsets);
159159
}
160160
file.read(data, offset);
161+
directory.link(file);
162+
file.link(directory);
161163
file.adoptLinkedCentralDirectoryValues();
162164
zip.addPart(file);
163165
postProcessLocalFileHeader(file);

0 commit comments

Comments
 (0)