From 1aaa996b60224f0540d0db87298040561556069f Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 18 Sep 2014 09:16:51 +0000
Subject: [PATCH] OPENDJ-1487 CR-4580 Prevent opened cursors when cleaning the file-based changelog

---
 opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
index b588dd1..ec88341 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java
@@ -373,6 +373,24 @@
       purger.initiateShutdown();
     }
 
+    // wait for shutdown of the threads holding cursors
+    try
+    {
+      if (indexer != null)
+      {
+        indexer.join();
+      }
+      if (purger != null)
+      {
+        purger.join();
+      }
+    }
+    catch (InterruptedException e)
+    {
+      // do nothing: we are already shutting down
+    }
+
+    // now we can safely shutdown all DBs
     try
     {
       shutdownChangeNumberIndexDB();
@@ -381,7 +399,6 @@
     {
       firstException = e;
     }
-
     for (Iterator<ConcurrentMap<Integer, FileReplicaDB>> it =
         this.domainToReplicaDBs.values().iterator(); it.hasNext();)
     {
@@ -395,26 +412,8 @@
         }
       }
     }
-
     if (replicationEnv != null)
     {
-      // wait for shutdown of the threads holding cursors
-      try
-      {
-        if (indexer != null)
-        {
-          indexer.join();
-        }
-        if (purger != null)
-        {
-          purger.join();
-        }
-      }
-      catch (InterruptedException e)
-      {
-        // do nothing: we are already shutting down
-      }
-
       replicationEnv.shutdown();
     }
 

--
Gitblit v1.10.0