summaryrefslogtreecommitdiffstats
path: root/filedistribution
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-06-22 11:07:44 +0200
committerHarald Musum <musum@verizonmedia.com>2021-06-22 11:07:44 +0200
commit98e925d48b4e685ad88604d0a574b00f232ec3a9 (patch)
tree098adf80ad25d1ae299c94dca869ed9e496aa3fd /filedistribution
parent27208993ceebf45b2df9c7546d660af0b90cad9f (diff)
Use synchronized map, simplify
Diffstat (limited to 'filedistribution')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/Downloads.java11
-rw-r--r--filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java5
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) {