Skip to content

close zipFile before resolving promise#355

Open
jamesthomp wants to merge 1 commit into
mockingbot:masterfrom
jamesthomp:patch-1
Open

close zipFile before resolving promise#355
jamesthomp wants to merge 1 commit into
mockingbot:masterfrom
jamesthomp:patch-1

Conversation

@jamesthomp

@jamesthomp jamesthomp commented Jun 16, 2026

Copy link
Copy Markdown

I noticed an occasional issue when using the zip file immediately after calling zip(...) that some of the data was all 0 bytes. I assume this is due to the zip not being closed and so some parts of the file were not flushed to disk. Adding the .close() call seems to have resolved the issue.


Open in Devin Review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

return;
}
}
zipFile.close();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Pre-existing resource leak: zipFile not closed on error paths

The new close() call correctly handles the success path, but zipFile is still not closed in two other paths: (1) when the catch block at line 427 handles an exception during file addition, and (2) when the early return at line 420-421 is triggered because a file doesn't exist. These are pre-existing issues not introduced by this PR, but for completeness the fix could use a try-with-resources or a finally block to ensure the zipFile is always closed. Similarly, unzipWithPassword at RNZipArchiveModule.java:77 and isPasswordProtected at RNZipArchiveModule.java:63 also don't close their ZipFile instances.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe its important the .close() call happens before the promise resolve, so a try-with-resources or a finally block would not fix the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant