From 7c30dbb5403772b323df3ad907d9ed15d23b5aee Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Thu, 29 Apr 2010 20:35:40 +0000
Subject: [PATCH] Last batch of changes for this week. This adds support for the IETF based Password Policy for LDAP as SubEntry. Also resolves the following issues : - 4544 :  initializeBackend() should not set JE env config params directly. - 4478 : ECL in draft compat mode / search lastchangenumber can be very long - 4538 : Virtual attributes not retrieved when entry cache configured - 4547 : Search Filter Matching differ for cn=Directory Manager and plain user. - 4514 : Logs shows unexpected message with replication monitoring data missing (Partial fix) - 4534 : Replication using security does not work after server restart - 4516 : SEVERE_ERROR: servers (...) have the same ServerId In addition, they also improve reliability and performance in various areas including CollectiveAttributes, Virtual Attributes and Subentries management, Schema loading, Replication...

---
 opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 67673d1..1cefe98 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -1439,7 +1439,8 @@
     if (handler == null)
       return 0;
 
-    return handler.getCount(from, to);
+    int count = handler.getCount(from, to);
+    return count;
   }
 
   /**
@@ -2674,12 +2675,12 @@
       for (ServerHandler rs : replicationServers.values())
       {
         int serverId = rs.getServerId();
+        // Store the fact that we expect a MonitoringMsg back from this server
+        expectedMonitoringMsg.add(new GlobalServerId(baseDn, serverId));
         MonitorRequestMsg msg =
           new MonitorRequestMsg(this.replicationServer.getServerId(),
           serverId);
         rs.send(msg);
-        // Store the fact that we expect a MonitoringMsg back from this server
-        expectedMonitoringMsg.add(new GlobalServerId(baseDn, serverId));
       }
     } catch (Exception e)
     {
@@ -3379,6 +3380,7 @@
    */
   public long getEligibleCount(ServerState startState, ChangeNumber endCN)
   {
+    long sidRes = 0;
     long res = 0;
 
     // Parses the dbState of the domain , server by server
@@ -3391,7 +3393,13 @@
       ChangeNumber startCN = null;
       if (startState.getMaxChangeNumber(sid) != null)
         startCN = startState.getMaxChangeNumber(sid);
-      res += getCount(sid, startCN, endCN);
+      sidRes += getCount(sid, startCN, endCN);
+
+      // The startPoint is excluded when counting the ECL eligible changes
+      if ((startCN!=null)&&(sidRes>0))
+        sidRes--;
+
+      res+=sidRes;
     }
     return res;
   }

--
Gitblit v1.10.0