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