From a6be5db964ffa77a68b91966d99f6fa0b36b532e Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Tue, 29 May 2007 09:27:46 +0000
Subject: [PATCH] Fix for 1561 : ReplicationDomain.disable() should wait for all threads to die be fore returning

---
 opends/src/server/org/opends/server/replication/server/ServerWriter.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ServerWriter.java b/opends/src/server/org/opends/server/replication/server/ServerWriter.java
index 5344e20..6018ed9 100644
--- a/opends/src/server/org/opends/server/replication/server/ServerWriter.java
+++ b/opends/src/server/org/opends/server/replication/server/ServerWriter.java
@@ -27,6 +27,8 @@
 package org.opends.server.replication.server;
 
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.messages.MessageHandler.getMessage;
 import static org.opends.server.messages.ReplicationMessages.*;
 
@@ -35,6 +37,7 @@
 import java.util.NoSuchElementException;
 
 import org.opends.server.api.DirectoryThread;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.replication.protocol.ProtocolSession;
 import org.opends.server.replication.protocol.UpdateMessage;
 import org.opends.server.types.ErrorLogCategory;
@@ -47,9 +50,15 @@
  */
 public class ServerWriter extends DirectoryThread
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private ProtocolSession session;
   private ServerHandler handler;
   private ReplicationCache replicationCache;
+  private short serverId;
 
   /**
    * Create a ServerWriter.
@@ -66,6 +75,7 @@
   {
     super(handler.toString() + " writer");
 
+    this.serverId = serverId;
     this.session = session;
     this.handler = handler;
     this.replicationCache = replicationCache;
@@ -78,6 +88,17 @@
    */
   public void run()
   {
+    if (debugEnabled())
+    {
+      if (handler.isReplicationServer())
+      {
+        TRACER.debugInfo("Replication server writer starting " + serverId);
+      }
+      else
+      {
+        TRACER.debugInfo("LDAP server writer starting " + serverId);
+      }
+    }
     try {
       while (true)
       {
@@ -132,6 +153,18 @@
        // Can't do much more : ignore
       }
       replicationCache.stopServer(handler);
+
+      if (debugEnabled())
+      {
+        if (handler.isReplicationServer())
+        {
+          TRACER.debugInfo("Replication server writer stopping " + serverId);
+        }
+        else
+        {
+          TRACER.debugInfo("LDAP server writer stopping " + serverId);
+        }
+      }
     }
   }
 }

--
Gitblit v1.10.0