From 70d13956bc76d9f3ef4f651239ada1a00cacb85c Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 18 Sep 2014 08:23:40 +0000
Subject: [PATCH] Add missing synchronization on replicaCursors in FileChangelogDB class
---
opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java | 20 +++++++++++++-------
1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java b/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
index 15fe16c..b588dd1 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
@@ -785,10 +785,13 @@
else if (cursor instanceof ReplicaCursor)
{
final ReplicaCursor replicaCursor = (ReplicaCursor) cursor;
- final List<ReplicaCursor> cursors = replicaCursors.get(replicaCursor.getReplicaID());
- if (cursors != null)
+ synchronized (replicaCursors)
{
- cursors.remove(cursor);
+ final List<ReplicaCursor> cursors = replicaCursors.get(replicaCursor.getReplicaID());
+ if (cursors != null)
+ {
+ cursors.remove(cursor);
+ }
}
}
}
@@ -851,12 +854,15 @@
private void updateCursorsWithOfflineCSN(final DN baseDN, final int serverId, final CSN offlineCSN)
{
- final List<ReplicaCursor> cursors = replicaCursors.get(Pair.of(baseDN, serverId));
- if (cursors != null)
+ synchronized (replicaCursors)
{
- for (ReplicaCursor cursor : cursors)
+ final List<ReplicaCursor> cursors = replicaCursors.get(Pair.of(baseDN, serverId));
+ if (cursors != null)
{
- cursor.setOfflineCSN(offlineCSN);
+ for (ReplicaCursor cursor : cursors)
+ {
+ cursor.setOfflineCSN(offlineCSN);
+ }
}
}
}
--
Gitblit v1.10.0