This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new 2aca353 UNOMI-331 Concurrency issues in rules and event listeners
(#151)
2aca353 is described below
commit 2aca35386d9f341770144fdb0fc1c70f3ee2e96e
Author: Serge Huber <[email protected]>
AuthorDate: Tue Apr 28 18:57:38 2020 +0200
UNOMI-331 Concurrency issues in rules and event listeners (#151)
Fixed by replacing ArrayList with CopyOnWriteList
---
.../java/org/apache/unomi/services/impl/events/EventServiceImpl.java | 3 ++-
.../java/org/apache/unomi/services/impl/rules/RulesServiceImpl.java | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git
a/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
b/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
index 85e4aef..b1846dc 100644
---
a/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
+++
b/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
@@ -39,12 +39,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
public class EventServiceImpl implements EventService {
private static final Logger logger =
LoggerFactory.getLogger(EventServiceImpl.class.getName());
private static final int MAX_RECURSION_DEPTH = 10;
- private List<EventListenerService> eventListeners = new
ArrayList<EventListenerService>();
+ private List<EventListenerService> eventListeners = new
CopyOnWriteArrayList<EventListenerService>();
private PersistenceService persistenceService;
diff --git
a/services/src/main/java/org/apache/unomi/services/impl/rules/RulesServiceImpl.java
b/services/src/main/java/org/apache/unomi/services/impl/rules/RulesServiceImpl.java
index 6aeeae9..d77173c 100644
---
a/services/src/main/java/org/apache/unomi/services/impl/rules/RulesServiceImpl.java
+++
b/services/src/main/java/org/apache/unomi/services/impl/rules/RulesServiceImpl.java
@@ -39,6 +39,7 @@ import java.io.IOException;
import java.net.URL;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
public class RulesServiceImpl implements RulesService, EventListenerService,
SynchronousBundleListener {
@@ -61,7 +62,7 @@ public class RulesServiceImpl implements RulesService,
EventListenerService, Syn
private Integer rulesRefreshInterval = 1000;
private Integer rulesStatisticsRefreshInterval = 10000;
- private List<RuleListenerService> ruleListeners = new
ArrayList<RuleListenerService>();
+ private List<RuleListenerService> ruleListeners = new
CopyOnWriteArrayList<RuleListenerService>();
public void setBundleContext(BundleContext bundleContext) {
this.bundleContext = bundleContext;