Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent file descriptor leak and modernize BufferedWriter creation #1

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pixeeai
Copy link

@pixeeai pixeeai commented Jun 5, 2024

This change prevents a file descriptor leak and modernizes the file writing API pattern.

The way the code is written now, the FileWriter never gets closed. Thus, it is up to the garbage collector's objection finalization process to close them at some point. This is not a good practice, and it can lead to a file descriptor leak. In hot code paths, it could cause exhaustion of all the available file descriptors for the system and lead to denial-of-service conditions.

Our changes look something like this:

-  BufferedWriter writer = new BufferedWriter(new FileWriter(f));
+  BufferedWriter writer = Files.newBufferedWriter(f.toPath());
More reading

🧚🤖 Powered by Pixeebot

💬Feedback | 👥Community | 📚Docs | Codemod ID: pixee:java/prevent-filewriter-leak-with-nio

Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
@pixeeai
Copy link
Author

pixeeai commented Jun 5, 2024

This change was autogenerated from a GitHub app - called Pixeebot. A code-quality GitHub App for source code.

Free installation for Open Source projects: 👇
https://github.com/marketplace/pixeebot-automated-code-fixes

@pixeeai
Copy link
Author

pixeeai commented Nov 2, 2024

Any chance you've had the time to review these changes?

If you're not interested implementing them at this time, no worries. I can close the PR and follow up with additional changes in the future. Also, this plugin is free for non-commercial open sourced projects, so feel free to give it an install if you want to see the other recommended PRs.

Thanks,
Zach

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