| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
…nc errors - Atomic file writes: Modified putFile, putFileStream (in cache_manager.dart) and _saveFileAndPostUpdates (in web_helper.dart) to write data into a .tmp file first. The file is only atomically renamed to its final path upon successful completion. This prevents partially written or 0-byte files from lingering if the app is killed, crashes, or runs out of disk space during a write. - Zero-byte cache protection: Updated _manageResponse (in web_helper.dart) to detect successful downloads that yield 0 bytes (e.g. backend error returning empty body with 200 OK) and delete the file without registering it in the SQLite cache DB. - FileSystemIO directory optimization: Fixed createFile in ile_system_io.dart to reuse the existing Directory reference instead of creating a new Directory object which was immediately discarded. - Integrated PR Baseflow#499: Added a catchError block to _getCacheDataFromDatabase(key).then(...) in cache_store.dart. This ensures the Completer resolves properly (with an error) and cleans up _futureCache, preventing a memory leak and a hung Future when DB or FileSystem exceptions occur during data retrieval. - Integrated PR Baseflow#487: Added an empty file check (length > 0) in json_cache_info_repository.dart before decoding JSON to prevent FormatException crashes when the JSON metadata file is empty (e.g. after a disk full interruption). - Added comprehensive tests: Covered atomic file operation errors and 0-byte download handling in cache_manager_test.dart and web_helper_test.dart.
| Back | FazBrowse Home | New Git URL |
✨ What kind of change does this PR introduce? (Bug fix, feature, docs update...)
Fixes an exception caused by empty json files
⤵️ What is the current behavior?
Throws FormatException: Unexpected end of input (at character 1)
🆕 What is the new behavior (if this is a feature change)?
No error logged
💥 Does this PR introduce a breaking change?
No
🐛 Recommendations for testing
Added a test for this
📝 Links to relevant issues/docs
#450
🤔 Checklist before submitting