diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-06-22 11:07:44 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-06-22 11:07:44 +0200 |
commit | 98e925d48b4e685ad88604d0a574b00f232ec3a9 (patch) | |
tree | 098adf80ad25d1ae299c94dca869ed9e496aa3fd /filedistribution/src | |
parent | 27208993ceebf45b2df9c7546d660af0b90cad9f (diff) |
Use synchronized map, simplify
Diffstat (limited to 'filedistribution/src')
-rw-r--r-- | filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java | 11 | ||||
-rw-r--r-- | filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java | 5 |
2 files changed, 9 insertions, 7 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java index 181c424ef98..ba5693a1efb 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java @@ -7,6 +7,7 @@ import java.io.File; import java.time.Instant; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -79,16 +80,14 @@ public class Downloads { private static final int maxEntries = 100; - private final Map<FileReference, DownloadStatus> downloadStatus = new ConcurrentHashMap<>(); + private final Map<FileReference, DownloadStatus> downloadStatus = Collections.synchronizedMap(new HashMap<>()); void add(FileReference fileReference) { add(fileReference, 0.0); } void add(FileReference fileReference, double progress) { - DownloadStatus ds = new DownloadStatus(fileReference); - ds.setProgress(progress); - downloadStatus.put(fileReference, ds); + downloadStatus.put(fileReference, new DownloadStatus(fileReference, progress)); if (downloadStatus.size() > maxEntries) { Map.Entry<FileReference, DownloadStatus> oldest = Collections.min(downloadStatus.entrySet(), Comparator.comparing(e -> e.getValue().created)); @@ -116,9 +115,9 @@ public class Downloads { private double progress; // between 0 and 1 private final Instant created; - DownloadStatus(FileReference fileReference) { + DownloadStatus(FileReference fileReference, double progress) { this.fileReference = fileReference; - this.progress = 0.0; + this.progress = progress; this.created = Instant.now(); } diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java index 475228543eb..6169f6fbe55 100644 --- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java +++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java @@ -273,7 +273,10 @@ public class FileDownloaderTest { private void assertDownloadStatus(FileReference fileReference, double expectedDownloadStatus) { double downloadStatus = downloads.downloadStatus(fileReference); - assertEquals(expectedDownloadStatus, downloadStatus, 0.0001); + assertEquals("Download statuses: " + downloads.downloadStatuses().toString(), + expectedDownloadStatus, + downloadStatus, + 0.0001); } private void receiveFile(FileReference fileReference, String filename, FileReferenceData.Type type, String content) { |