From 0703e4eeef5bc069b744eb7a9f63449fb8524766 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 30 Dec 2018 06:02:08 +0000
Subject: [PATCH] Handle concurrent load of file archives properly.
---
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
index aeb5894..4e55fa2 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -172,23 +172,21 @@
.setArchive(archive.getName())
.setParams("--json-lines")
.setDescription("Loading list of files of archive '" + archive.getName() + "' of repo '" + repoConfig.getDisplayName() + "'.");
- List<BorgFilesystemItem> content = new ArrayList<>();
// The returned job might be an already queued or running one!
- BorgJob job = BorgQueueExecutor.getInstance().execute(new BorgJob(command) {
+ BorgJob<List<BorgFilesystemItem>> job = BorgQueueExecutor.getInstance().execute(new BorgJob<List<BorgFilesystemItem>>(command) {
@Override
protected void processStdOutLine(String line, int level) {
BorgFilesystemItem item = JsonUtils.fromJson(BorgFilesystemItem.class, line);
item.setMtime(DateUtils.format(item.getMtime()));
- content.add(item);
+ payload.add(item);
}
});
-
+ job.payload = new ArrayList<>();
JobResult<String> jobResult = job.getResult();
if (jobResult.getStatus() != JobResult.Status.OK) {
- return content;
+ return job.getPayload();
}
- Collections.sort(content); // Sort by path.
- return content;
+ return job.payload;
}
/**
--
Gitblit v1.10.0