From 7c30dbb5403772b323df3ad907d9ed15d23b5aee Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Thu, 29 Apr 2010 20:35:40 +0000
Subject: [PATCH] Last batch of changes for this week. This adds support for the IETF based Password Policy for LDAP as SubEntry. Also resolves the following issues : - 4544 :  initializeBackend() should not set JE env config params directly. - 4478 : ECL in draft compat mode / search lastchangenumber can be very long - 4538 : Virtual attributes not retrieved when entry cache configured - 4547 : Search Filter Matching differ for cn=Directory Manager and plain user. - 4514 : Logs shows unexpected message with replication monitoring data missing (Partial fix) - 4534 : Replication using security does not work after server restart - 4516 : SEVERE_ERROR: servers (...) have the same ServerId In addition, they also improve reliability and performance in various areas including CollectiveAttributes, Virtual Attributes and Subentries management, Schema loading, Replication...

---
 opends/src/server/org/opends/server/replication/server/DataServerHandler.java |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/DataServerHandler.java b/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
index 5053f42..272b583 100644
--- a/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Copyright 2006-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.replication.server;
 
@@ -494,18 +494,21 @@
       boolean sessionInitiatorSSLEncryption =
         processStartFromRemote(inServerStartMsg);
 
+      /**
+       * Hack to be sure that if a server disconnects and reconnect, we
+       * let the reader thread see the closure and cleanup any reference
+       * to old connection. This must be done before taking the domain lock so
+       * that the reader thread has a chance to stop the handler.
+       */
+      replicationServerDomain.
+      waitDisconnection(inServerStartMsg.getServerId());
+
       // lock with no timeout
       lockDomain(false);
 
       localGenerationId = replicationServerDomain.getGenerationId();
       oldGenerationId = localGenerationId;
 
-      // Hack to be sure that if a server disconnects and reconnect, we
-      // let the reader thread see the closure and cleanup any reference
-      // to old connection
-      replicationServerDomain.
-      waitDisconnection(inServerStartMsg.getServerId());
-
       // Duplicate server ?
       if (!replicationServerDomain.checkForDuplicateDS(this))
       {

--
Gitblit v1.10.0