Prevent leaks by making cleanup tasks static

This commit is contained in:
tzugen 2021-05-21 19:11:26 +02:00
parent b25a118148
commit 7922d6caad
No known key found for this signature in database
GPG Key ID: 61E9C34BC10EC930
1 changed files with 15 additions and 24 deletions

View File

@ -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> downloader = inject(Downloader.class);
private Lazy<ActiveServerProvider> activeServerProvider = inject(ActiveServerProvider.class);
public CacheCleaner()
{
}
@ -76,7 +72,7 @@ public class CacheCleaner
}
}
private void deleteEmptyDirs(Iterable<File> dirs, Collection<File> doNotDelete)
private static void deleteEmptyDirs(Iterable<File> dirs, Collection<File> doNotDelete)
{
for (File dir : dirs)
{
@ -105,7 +101,7 @@ public class CacheCleaner
}
}
private long getMinimumDelete(List<File> files)
private static long getMinimumDelete(List<File> files)
{
if (files.isEmpty())
{
@ -194,20 +190,14 @@ public class CacheCleaner
private static void sortByAscendingModificationTime(List<File> files)
{
Collections.sort(files, new Comparator<File>()
{
@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<File> findFilesToNotDelete()
private static Set<File> findFilesToNotDelete()
{
Set<File> filesToNotDelete = new HashSet<File>(5);
Set<File> filesToNotDelete = new HashSet<>(5);
Lazy<Downloader> downloader = inject(Downloader.class);
for (DownloadFile downloadFile : downloader.getValue().getDownloads())
{
@ -219,7 +209,7 @@ public class CacheCleaner
return filesToNotDelete;
}
private class BackgroundCleanup extends AsyncTask<Void, Void, Void>
private static class BackgroundCleanup extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
@ -227,8 +217,8 @@ public class CacheCleaner
try
{
Thread.currentThread().setName("BackgroundCleanup");
List<File> files = new ArrayList<File>();
List<File> dirs = new ArrayList<File>();
List<File> files = new ArrayList<>();
List<File> dirs = new ArrayList<>();
findCandidatesForDeletion(FileUtil.getMusicDirectory(), files, dirs);
sortByAscendingModificationTime(files);
@ -247,7 +237,7 @@ public class CacheCleaner
}
}
private class BackgroundSpaceCleanup extends AsyncTask<Void, Void, Void>
private static class BackgroundSpaceCleanup extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
@ -255,8 +245,8 @@ public class CacheCleaner
try
{
Thread.currentThread().setName("BackgroundSpaceCleanup");
List<File> files = new ArrayList<File>();
List<File> dirs = new ArrayList<File>();
List<File> files = new ArrayList<>();
List<File> dirs = new ArrayList<>();
findCandidatesForDeletion(FileUtil.getMusicDirectory(), files, dirs);
long bytesToDelete = getMinimumDelete(files);
@ -276,13 +266,14 @@ public class CacheCleaner
}
}
private class BackgroundPlaylistsCleanup extends AsyncTask<List<Playlist>, Void, Void>
private static class BackgroundPlaylistsCleanup extends AsyncTask<List<Playlist>, Void, Void>
{
@Override
protected Void doInBackground(List<Playlist>... params)
{
try
{
Lazy<ActiveServerProvider> activeServerProvider = inject(ActiveServerProvider.class);
Thread.currentThread().setName("BackgroundPlaylistsCleanup");
String server = activeServerProvider.getValue().getActiveServer().getName();
SortedSet<File> playlistFiles = FileUtil.listFiles(FileUtil.getPlaylistDirectory(server));