From 4b2fab61a899145925b9c7dd8ee25e95643eb07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Wed, 13 Aug 2025 22:52:12 +0100 Subject: [PATCH] Fix OOM crash when exporting large database (#5238) --- .../gadgetbridge/util/backup/ZipBackupExportJob.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/backup/ZipBackupExportJob.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/backup/ZipBackupExportJob.java index 912c1243e7..17f9acdbec 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/backup/ZipBackupExportJob.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/backup/ZipBackupExportJob.java @@ -23,7 +23,6 @@ import android.net.Uri; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -153,17 +152,15 @@ public class ZipBackupExportJob extends AbstractZipBackupJob { private static void exportDatabase(final ZipOutputStream zipOut, final Context context) throws IOException { LOG.debug("Exporting database"); - final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + final ZipEntry zipEntry = new ZipEntry(DATABASE_FILENAME); + zipOut.putNextEntry(zipEntry); + try (DBHandler dbHandler = GBApplication.acquireDB()) { final DBHelper helper = new DBHelper(context); - helper.exportDB(dbHandler, baos); + helper.exportDB(dbHandler, zipOut); } catch (final Exception e) { throw new IOException("Failed to export database", e); } - - final ZipEntry zipEntry = new ZipEntry(DATABASE_FILENAME); - zipOut.putNextEntry(zipEntry); - zipOut.write(baos.toByteArray()); } /**