From 7922d6caadb43ea6a57b8d1537fa8240fa209b7e Mon Sep 17 00:00:00 2001 From: tzugen Date: Fri, 21 May 2021 19:11:26 +0200 Subject: [PATCH] Prevent leaks by making cleanup tasks static --- .../moire/ultrasonic/util/CacheCleaner.java | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/util/CacheCleaner.java b/ultrasonic/src/main/java/org/moire/ultrasonic/util/CacheCleaner.java index 6368e001..a63c8875 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/util/CacheCleaner.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/util/CacheCleaner.java @@ -13,7 +13,6 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -30,9 +29,6 @@ public class CacheCleaner { private static final long MIN_FREE_SPACE = 500 * 1024L * 1024L; - private Lazy downloader = inject(Downloader.class); - private Lazy activeServerProvider = inject(ActiveServerProvider.class); - public CacheCleaner() { } @@ -76,7 +72,7 @@ public class CacheCleaner } } - private void deleteEmptyDirs(Iterable dirs, Collection doNotDelete) + private static void deleteEmptyDirs(Iterable dirs, Collection doNotDelete) { for (File dir : dirs) { @@ -105,7 +101,7 @@ public class CacheCleaner } } - private long getMinimumDelete(List files) + private static long getMinimumDelete(List files) { if (files.isEmpty()) { @@ -194,20 +190,14 @@ public class CacheCleaner private static void sortByAscendingModificationTime(List files) { - Collections.sort(files, new Comparator() - { - @Override - public int compare(File a, File b) - { - return Long.compare(a.lastModified(), b.lastModified()); - - } - }); + Collections.sort(files, (a, b) -> Long.compare(a.lastModified(), b.lastModified())); } - private Set findFilesToNotDelete() + private static Set findFilesToNotDelete() { - Set filesToNotDelete = new HashSet(5); + Set filesToNotDelete = new HashSet<>(5); + + Lazy downloader = inject(Downloader.class); for (DownloadFile downloadFile : downloader.getValue().getDownloads()) { @@ -219,7 +209,7 @@ public class CacheCleaner return filesToNotDelete; } - private class BackgroundCleanup extends AsyncTask + private static class BackgroundCleanup extends AsyncTask { @Override protected Void doInBackground(Void... params) @@ -227,8 +217,8 @@ public class CacheCleaner try { Thread.currentThread().setName("BackgroundCleanup"); - List files = new ArrayList(); - List dirs = new ArrayList(); + List files = new ArrayList<>(); + List dirs = new ArrayList<>(); findCandidatesForDeletion(FileUtil.getMusicDirectory(), files, dirs); sortByAscendingModificationTime(files); @@ -247,7 +237,7 @@ public class CacheCleaner } } - private class BackgroundSpaceCleanup extends AsyncTask + private static class BackgroundSpaceCleanup extends AsyncTask { @Override protected Void doInBackground(Void... params) @@ -255,8 +245,8 @@ public class CacheCleaner try { Thread.currentThread().setName("BackgroundSpaceCleanup"); - List files = new ArrayList(); - List dirs = new ArrayList(); + List files = new ArrayList<>(); + List dirs = new ArrayList<>(); findCandidatesForDeletion(FileUtil.getMusicDirectory(), files, dirs); long bytesToDelete = getMinimumDelete(files); @@ -276,13 +266,14 @@ public class CacheCleaner } } - private class BackgroundPlaylistsCleanup extends AsyncTask, Void, Void> + private static class BackgroundPlaylistsCleanup extends AsyncTask, Void, Void> { @Override protected Void doInBackground(List... params) { try { + Lazy activeServerProvider = inject(ActiveServerProvider.class); Thread.currentThread().setName("BackgroundPlaylistsCleanup"); String server = activeServerProvider.getValue().getActiveServer().getName(); SortedSet playlistFiles = FileUtil.listFiles(FileUtil.getPlaylistDirectory(server));