From 2725e9f3e52b008e28019a148cae4b58fc6dc69c Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Mon, 07 Jan 2019 23:33:35 +0000
Subject: [PATCH] ConcurrentModificationException on queue: synchronized added.
---
borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/JobQueue.java | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/JobQueue.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/JobQueue.java
index fc36350..e040676 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/JobQueue.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/JobQueue.java
@@ -38,7 +38,9 @@
}
public Iterator<AbstractJob<T>> getQueueIterator() {
- return Collections.unmodifiableList(queue).iterator();
+ synchronized (queue) {
+ return Collections.unmodifiableList(queue).iterator();
+ }
}
/**
@@ -48,11 +50,13 @@
* @return The job if any job with the given unique job number is queued, otherwise null.
*/
public AbstractJob<T> getQueuedJobByUniqueJobNumber(long uniqueJobNumber) {
- Iterator<AbstractJob<T>> it = queue.iterator();
- while (it.hasNext()) {
- AbstractJob<T> job = it.next();
- if (job.getUniqueJobNumber() == uniqueJobNumber) {
- return job;
+ synchronized (queue) {
+ Iterator<AbstractJob<T>> it = queue.iterator();
+ while (it.hasNext()) {
+ AbstractJob<T> job = it.next();
+ if (job.getUniqueJobNumber() == uniqueJobNumber) {
+ return job;
+ }
}
}
return null;
--
Gitblit v1.10.0