From 99130eb472ec35ffe67c623f52fc2c75778334d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Fri, 6 Oct 2023 21:38:35 +0100 Subject: [PATCH] Fix closeable file leak on weather cache --- .../freeyourgadget/gadgetbridge/GBApplication.java | 14 +++++++++++++- .../freeyourgadget/gadgetbridge/model/Weather.java | 4 +--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java index b0bbb8d8f..f3304d919 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java @@ -156,7 +156,7 @@ public class GBApplication extends Application { private BluetoothStateChangeReceiver bluetoothStateChangeReceiver; private OpenTracksContentObserver openTracksObserver; - + private long lastAutoExportTimestamp = 0; private long autoExportScheduledTimestamp = 0; @@ -171,6 +171,18 @@ public class GBApplication extends Application { public GBApplication() { context = this; // don't do anything here, add it to onCreate instead + + //if (BuildConfig.DEBUG) { + // // detect everything + // //StrictMode.enableDefaults(); + // // detect closeable objects + // //StrictMode.setVmPolicy( + // // new StrictMode.VmPolicy.Builder() + // // .detectLeakedClosableObjects() + // // .penaltyLog() + // // .build() + // //); + //} } public static Logging getLogging() { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java index fd8f5dd14..f83cf9d0d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java @@ -994,14 +994,12 @@ public class Weather { LOG.info("Setting weather cache file to {}", cacheFile.getPath()); if (cacheFile.isFile() && weatherSpec == null) { - try { - final FileInputStream f = new FileInputStream(cacheFile); + try (final FileInputStream f = new FileInputStream(cacheFile)) { final ObjectInputStream o = new ObjectInputStream(f); weatherSpec = (WeatherSpec) o.readObject(); o.close(); - f.close(); } catch (final Throwable e) { LOG.error("Failed to read weather from cache", e); weatherSpec = null;