Anna Larch
5113b18739
fix(appstore): catch GenericFileException when reading cache file in Fetcher
...
When the appstore cache file exists but getContent() throws a
GenericFileException (I/O error or OS-level permission failure), explicitly
delete the file and recreate it before writing fresh data — mirroring the
NotFoundException recovery path. If deletion itself fails, return [] cleanly.
Previously, the unhandled exception caused the entire apps settings page to
crash. The new test covers both the recovery path and deletion failure.
Signed-off-by: Anna Larch <anna@nextcloud.com >
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 16:34:06 +02:00
..
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-05-19 16:34:06 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-05-02 14:04:09 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-01-28 09:24:24 +01:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-05-06 10:32:54 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2025-07-01 22:45:52 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-05-04 11:03:52 +01:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2025-12-11 13:27:47 +01:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-05-05 10:41:04 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2025-07-01 16:26:50 +02:00
2026-02-17 06:43:16 +01:00
2026-04-28 21:29:28 +02:00
2026-02-09 10:59:31 +01:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2025-11-05 15:42:40 +01:00
2025-07-01 22:45:52 +02:00
2026-05-05 10:41:04 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-30 12:38:03 +02:00
2026-04-29 23:54:19 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00
2026-04-28 21:29:28 +02:00