From 37d94bc7fc4991912f2c0d87730ac8c3c26ab00d Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Mon, 10 Dec 2007 16:57:26 +0000
Subject: [PATCH] This fixes 2724 : and enable/fix some more replication tests.

---
 opends/src/server/org/opends/server/replication/server/ServerHandler.java |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index 174eba0..2c4e3ba 100644
--- a/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -53,7 +53,6 @@
 package org.opends.server.replication.server;
 
 import org.opends.messages.*;
-import org.opends.messages.MessageBuilder;
 
 import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.loggers.debug.DebugLogger.*;
@@ -73,6 +72,7 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
 
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.MonitorProvider;
@@ -167,6 +167,11 @@
    */
   HeartbeatThread heartbeatThread = null;
 
+  /**
+   * Set when ServerHandler is stopping.
+   */
+  private boolean shutdown = false;
+
   private static final Map<ChangeNumber, ReplServerAckMessageList>
    changelogsWaitingAcks =
        new HashMap<ChangeNumber, ReplServerAckMessageList>();
@@ -1012,13 +1017,13 @@
     do {
       try
       {
-        sendWindow.acquire();
+        sendWindow.tryAcquire((long)500, TimeUnit.MILLISECONDS);
         interrupted = false;
       } catch (InterruptedException e)
       {
         // loop until not interrupted
       }
-    } while (interrupted);
+    } while ((interrupted) && (!shutdown));
     this.incrementOutCount();
     return msg;
   }
@@ -1504,6 +1509,7 @@
    */
   public void shutdown()
   {
+    shutdown  = true;
     try
     {
       session.close();

--
Gitblit v1.10.0