From fe6725b4cde23ba558393a0687bf93842258e66a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 13 Nov 2013 16:17:29 +0000
Subject: [PATCH] CompositeDBCursor.java: Fixed another ConcurrentModificationException that I created. *Sigh*
---
opends/src/server/org/opends/server/replication/server/changelog/je/CompositeDBCursor.java | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/CompositeDBCursor.java b/opends/src/server/org/opends/server/replication/server/changelog/je/CompositeDBCursor.java
index 75eb518..f531745 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/CompositeDBCursor.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/CompositeDBCursor.java
@@ -80,12 +80,12 @@
public boolean next() throws ChangelogException
{
// try to recycle empty cursors in case the underlying ReplicaDBs received
- // new changes
- for (Iterator<DBCursor<UpdateMsg>> iter = exhaustedCursors.iterator(); iter
- .hasNext();)
+ // new changes. Copy the List to avoid ConcurrentModificationExceptions.
+ DBCursor<UpdateMsg>[] copy =
+ exhaustedCursors.toArray(new DBCursor[exhaustedCursors.size()]);
+ exhaustedCursors.clear();
+ for (DBCursor<UpdateMsg> cursor : copy)
{
- DBCursor<UpdateMsg> cursor = iter.next();
- iter.remove();
cursor.next();
add(cursor);
}
--
Gitblit v1.10.0