From 64d7cf576026e5cfdfca8a6a51f363b2d14d26b4 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 15 Sep 2014 10:16:31 +0000
Subject: [PATCH] OPENDJ-1541 (CR-4516) Persistent search on cn=changelog can return duplicates

---
 opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java       |   16 +++++++++++++---
 opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java |    2 +-
 opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java   |   16 +++++++++++++---
 3 files changed, 27 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 1801956..137e39c 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
@@ -26,7 +26,13 @@
 package org.opends.server.replication.server.changelog.file;
 
 import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentSkipListMap;
@@ -46,8 +52,12 @@
 import org.opends.server.replication.protocol.UpdateMsg;
 import org.opends.server.replication.server.ChangelogState;
 import org.opends.server.replication.server.ReplicationServer;
-import org.opends.server.replication.server.changelog.api.*;
+import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDB;
+import org.opends.server.replication.server.changelog.api.ChangelogDB;
+import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.replication.server.changelog.api.DBCursor;
 import org.opends.server.replication.server.changelog.api.DBCursor.PositionStrategy;
+import org.opends.server.replication.server.changelog.api.ReplicationDomainDB;
 import org.opends.server.replication.server.changelog.je.ChangeNumberIndexer;
 import org.opends.server.replication.server.changelog.je.DomainDBCursor;
 import org.opends.server.replication.server.changelog.je.MultiDomainDBCursor;
@@ -790,7 +800,7 @@
     final FileReplicaDB replicaDB = pair.getFirst();
     replicaDB.add(updateMsg);
 
-    ChangelogBackend.getInstance().notifyEntryAdded(baseDN, 0, null, updateMsg);
+    ChangelogBackend.getInstance().notifyCookieEntryAdded(baseDN, updateMsg);
 
     final ChangeNumberIndexer indexer = cnIndexer.get();
     if (indexer != null)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
index b9a32b6..f8e6f52 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
@@ -543,7 +543,7 @@
   protected void notifyEntryAddedToChangelog(DN baseDN, long changeNumber,
       String cookieString, UpdateMsg msg) throws ChangelogException
   {
-    ChangelogBackend.getInstance().notifyEntryAdded(baseDN, changeNumber, cookieString, msg);
+    ChangelogBackend.getInstance().notifyChangeNumberEntryAdded(baseDN, changeNumber, cookieString, msg);
   }
 
   /**
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index 7200e00..3d5e0f6 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -26,7 +26,13 @@
 package org.opends.server.replication.server.changelog.je;
 
 import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentSkipListMap;
@@ -46,8 +52,12 @@
 import org.opends.server.replication.protocol.UpdateMsg;
 import org.opends.server.replication.server.ChangelogState;
 import org.opends.server.replication.server.ReplicationServer;
-import org.opends.server.replication.server.changelog.api.*;
+import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDB;
+import org.opends.server.replication.server.changelog.api.ChangelogDB;
+import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.replication.server.changelog.api.DBCursor;
 import org.opends.server.replication.server.changelog.api.DBCursor.PositionStrategy;
+import org.opends.server.replication.server.changelog.api.ReplicationDomainDB;
 import org.opends.server.types.DN;
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.util.StaticUtils;
@@ -839,7 +849,7 @@
     final JEReplicaDB replicaDB = pair.getFirst();
     replicaDB.add(updateMsg);
 
-    ChangelogBackend.getInstance().notifyEntryAdded(baseDN, 0, null, updateMsg);
+    ChangelogBackend.getInstance().notifyCookieEntryAdded(baseDN, updateMsg);
 
     final ChangeNumberIndexer indexer = cnIndexer.get();
     if (indexer != null)

--
Gitblit v1.10.0