From 335a984ae6f4afac3d3d44195af75fe8d64ef760 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Fri, 01 Feb 2008 09:40:56 +0000
Subject: [PATCH] The Replication Server thread that is reading changes from the database to propagate them to the Directory Servers was sometimes leaving some Database cursors open.

---
 opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index d624741..3b85cb1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -857,16 +857,6 @@
     if (olderUpdateCN == null)
       return null;
 
-    ReplicationIterator ri =
-      replicationServerDomain.getChangelogIterator(serverId, olderUpdateCN);
-    if (ri != null)
-    {
-      if (ri.next())
-      {
-        ChangeNumber firstMissingChange = ri.getChange().getChangeNumber();
-        return firstMissingChange.getTime();
-      }
-    }
     return olderUpdateCN.getTime();
   }
 
@@ -1081,9 +1071,16 @@
             ChangeNumber lastCsn = serverState.getMaxChangeNumber(serverId);
             ReplicationIterator iterator =
               replicationServerDomain.getChangelogIterator(serverId, lastCsn);
-            if ((iterator != null) && (iterator.getChange() != null))
+            if (iterator != null)
             {
-              iteratorSortedSet.add(iterator);
+              if (iterator.getChange() != null)
+              {
+                iteratorSortedSet.add(iterator);
+              }
+              else
+              {
+                iterator.releaseCursor();
+              }
             }
           }
           while (!iteratorSortedSet.isEmpty() && (lateQueue.size()<100))

--
Gitblit v1.10.0