From 1eee1eff15bb3c9c742577b86def127f8deee8a1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 07 Jan 2019 23:30:04 +0000
Subject: [PATCH] ConcurrentModificationException on queue: synchronized added.
---
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
index 023ba42..86f2743 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
@@ -73,7 +73,7 @@
job.cancel();
queue.refreshQueue();
}
-
+
/**
* For displaying purposes.
*
@@ -86,15 +86,17 @@
if (origQueue == null) {
return jobList;
}
- Iterator<AbstractJob<String>> it = origQueue.getQueueIterator();
- while (it.hasNext()) {
- AbstractJob<String> origJob = it.next();
- if (!(origJob instanceof BorgJob)) {
- log.error("Oups, only BorgJobs are supported. Ignoring unexpected job: " + origJob.getClass());
- continue;
+ synchronized (origQueue) {
+ Iterator<AbstractJob<String>> it = origQueue.getQueueIterator();
+ while (it.hasNext()) {
+ AbstractJob<String> origJob = it.next();
+ if (!(origJob instanceof BorgJob)) {
+ log.error("Oups, only BorgJobs are supported. Ignoring unexpected job: " + origJob.getClass());
+ continue;
+ }
+ BorgJob<?> borgJob = ((BorgJob<?>) origJob).clone();
+ jobList.add(borgJob);
}
- BorgJob<?> borgJob = ((BorgJob<?>) origJob).clone();
- jobList.add(borgJob);
}
return jobList;
}
--
Gitblit v1.10.0