From 89183d52637336618123b78c1410381b7780d977 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Thu, 19 Nov 2015 09:26:52 +0000
Subject: [PATCH] OPENDJ-2396 Replication: post-external-initialization generates an error in log

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java |   10 +++++++++-
 opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java |    8 ++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java
index 10bdeee..f5061d5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationBroker.java
@@ -269,6 +269,10 @@
   {
     synchronized (startStopLock)
     {
+      if (!shutdown)
+      {
+        return;
+      }
       shutdown = false;
       this.rcvWindow = getMaxRcvWindow();
       connectAsDataServer();
@@ -2660,13 +2664,17 @@
   /** Stop the server. */
   public void stop()
   {
-    if (logger.isTraceEnabled())
+    if (logger.isTraceEnabled() && !shutdown)
     {
       debugInfo("is stopping and will close the connection to RS(" + getRsServerId() + ")");
     }
 
     synchronized (startStopLock)
     {
+      if (shutdown)
+      {
+        return;
+      }
       domain.publishReplicaOfflineMsg();
       shutdown = true;
       setConnectedRS(ConnectedRS.stopped());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java
index 14d92ad..91537b4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/service/ReplicationDomain.java
@@ -2942,8 +2942,12 @@
   {
     synchronized (sessionLock)
     {
-      final String threadName = "Replica DS(" + getServerId()
-          + ") listener for domain \"" + getBaseDN() + "\"";
+      if (listenerThread != null)
+      {
+        return;
+      }
+
+      final String threadName = "Replica DS(" + getServerId() + ") listener for domain \"" + getBaseDN() + "\"";
 
       listenerThread = new DirectoryThread(new Runnable()
       {

--
Gitblit v1.10.0