From b41f8df6ea90f377c125d918c85bea922bc654a7 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Tue, 15 Jan 2008 13:55:33 +0000
Subject: [PATCH] Fix for issue 2805 : purge delay parameter not taken into account online.

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index bf81c46..31088dd 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -119,8 +119,11 @@
   private int rcvWindow;
   private int queueSize;
   private String dbDirname = null;
-  private long trimAge; // the time (in sec) after which the  changes must
-                        // be deleted from the persistent storage.
+
+  // The delay (in sec) after which the  changes must
+  // be deleted from the persistent storage.
+  private long purgeDelay;
+
   private int replicationPort;
   private boolean stopListen = false;
   private ReplSessionSecurity replSessionSecurity;
@@ -158,7 +161,7 @@
     if (replicationServers == null)
       replicationServers = new ArrayList<String>();
     queueSize = configuration.getQueueSize();
-    trimAge = configuration.getReplicationPurgeDelay();
+    purgeDelay = configuration.getReplicationPurgeDelay();
     dbDirname = configuration.getReplicationDBDirectory();
     rcvWindow = configuration.getWindowSize();
     if (dbDirname == null)
@@ -582,7 +585,7 @@
    */
   long getTrimage()
   {
-    return trimAge * 1000;
+    return purgeDelay * 1000;
   }
 
   /**
@@ -628,7 +631,17 @@
     if (replicationServers == null)
       replicationServers = new ArrayList<String>();
     queueSize = configuration.getQueueSize();
-    trimAge = configuration.getReplicationPurgeDelay();
+    long newPurgeDelay = configuration.getReplicationPurgeDelay();
+    if (newPurgeDelay != purgeDelay)
+    {
+      purgeDelay = newPurgeDelay;
+      // propagate
+      for (ReplicationServerDomain domain : baseDNs.values())
+      {
+        domain.setPurgeDelay(purgeDelay);
+      }
+    }
+
     rcvWindow = configuration.getWindowSize();
 
     // changing the listen port requires to stop the listen thread

--
Gitblit v1.10.0