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

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

diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index c2af0a7..28442d6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -377,11 +377,13 @@
     if (indexer != null)
     {
       indexer.initiateShutdown();
+      indexer.interrupt();
     }
     final ChangelogDBPurger purger = cnPurger.getAndSet(null);
     if (purger != null)
     {
       purger.initiateShutdown();
+      purger.interrupt();
     }
 
     try
@@ -409,6 +411,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