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;

Reply via email to