From 52635206c54376a391a2d9b55e37b89ce2d3edfa Mon Sep 17 00:00:00 2001
From: mrossign <mrossign@localhost>
Date: Thu, 24 Jan 2008 15:28:25 +0000
Subject: [PATCH] Fix for #2863: Processes remain after stopping all replication servers at the same time
---
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java | 22 +++++++++++++---------
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ListenerThread.java | 5 +++++
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java | 9 +++++++++
3 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ListenerThread.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ListenerThread.java
index d92eb19..ca085aa 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ListenerThread.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ListenerThread.java
@@ -134,7 +134,12 @@
logError(message);
}
}
+
+ // Stop the HeartBeat thread
+ repDomain.getBroker().stopHeartBeat();
+
done = true;
+
if (debugEnabled())
{
TRACER.debugInfo("Replication Listener thread stopping.");
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
index 1a98549..a8eb808 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java
@@ -204,11 +204,7 @@
HashMap<String, ServerState> rsStates = new HashMap<String, ServerState>();
// Stop any existing heartbeat monitor from a previous session.
- if (heartbeatMonitor != null)
- {
- heartbeatMonitor.shutdown();
- heartbeatMonitor = null;
- }
+ stopHeartBeat();
synchronized (connectPhaseLock)
{
@@ -753,6 +749,18 @@
}
/**
+ * Stop the heartbeat monitor thread.
+ */
+ void stopHeartBeat()
+ {
+ if (heartbeatMonitor != null)
+ {
+ heartbeatMonitor.shutdown();
+ heartbeatMonitor = null;
+ }
+ }
+
+ /**
* restart the ReplicationBroker.
*/
public void reStart()
@@ -987,10 +995,6 @@
replicationServer = "stopped";
shutdown = true;
connected = false;
- if (heartbeatMonitor != null)
- {
- heartbeatMonitor.shutdown();
- }
try
{
if (debugEnabled())
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
index 8e4efd0..0800236 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
@@ -2865,6 +2865,15 @@
return DirectoryServer.getBackend(baseDN);
}
+ /**
+ * Get the internal broker to perform some operations on it.
+ *
+ * @return The broker for this domain.
+ */
+ ReplicationBroker getBroker()
+ {
+ return broker;
+ }
/**
* Exports an entry in LDIF format.
--
Gitblit v1.10.0