From 137d1b4ba1992acdd880b61b1a03dc31f0cc1839 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 23 Apr 2014 14:19:01 +0000
Subject: [PATCH] OPENDJ-1448 Remove JReplicaDB flushing thread and msg queue 

---
 opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

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 b1e2d63..dd337e5 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
@@ -385,11 +385,13 @@
     if (indexer != null)
     {
       indexer.initiateShutdown();
+      indexer.interrupt();
     }
     final ChangelogDBPurger purger = cnPurger.getAndSet(null);
     if (purger != null)
     {
       purger.initiateShutdown();
+      purger.interrupt();
     }
 
     try
@@ -417,6 +419,23 @@
 
     if (dbEnv != 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
+      }
+
       dbEnv.shutdown();
     }
 

--
Gitblit v1.10.0