You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/08/17 07:49:12 UTC
[sling-org-apache-sling-clam] 06/12: make iteration of clients
thread-safe
This is an automated email from the ASF dual-hosted git repository.
olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-clam.git
commit 72293dd1436faba76e392e3b2ce701cb04e7c410
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri Aug 16 18:14:55 2019 +0200
make iteration of clients thread-safe
---
.../java/org/apache/sling/clam/http/internal/ClamEventsServlet.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java b/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
index d62d2b8..377ecd6 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
@@ -68,7 +68,7 @@ import static org.apache.sling.clam.http.internal.ResponseUtil.json;
)
public class ClamEventsServlet extends HttpServlet implements JcrPropertyScanResultHandler {
- private List<Client> clients = Collections.synchronizedList(new ArrayList<>());
+ private final List<Client> clients = Collections.synchronizedList(new ArrayList<>());
private final AtomicLong counter = new AtomicLong(0);
@@ -102,7 +102,9 @@ public class ClamEventsServlet extends HttpServlet implements JcrPropertyScanRes
private void addEvent(final String type, final String data) {
final Event event = new Event(type, data);
- clients.iterator().forEachRemaining(client -> client.addEvent(event));
+ synchronized (clients) {
+ clients.iterator().forEachRemaining(client -> client.addEvent(event));
+ }
}
private class Event {