From 3b3c4bed59f36586b164325d2451b02ec7991452 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Mon, 14 Sep 2009 08:39:11 +0000
Subject: [PATCH] Fix for 4223 : dsreplication enable --noSchemaReplication fails: routing table is empty

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

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index 132de94..9ccb5ca 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -185,6 +185,9 @@
   ECLWorkflowElement eclwe;
   private static HashSet<Integer> localPorts = new HashSet<Integer>();
 
+  // used to synchronize the domain creation with the connect thread.
+  final private Object domainMonitor = new Object();
+
   /**
    * Creates a new Replication server using the provided configuration entry.
    *
@@ -436,6 +439,10 @@
       }
       try
       {
+        synchronized(domainMonitor)
+        {
+          domainMonitor.notifyAll();
+        }
         synchronized (this)
         {
           /* check if we are connected every second */
@@ -689,6 +696,22 @@
       {
         replicationServerDomain = new ReplicationServerDomain(baseDn, this);
         baseDNs.put(baseDn, replicationServerDomain);
+        synchronized (domainMonitor)
+        {
+          synchronized (this)
+          {
+            // kick up the connect thread so that this new domain
+            // gets connected to all the Replication Servers.
+            this.notify();
+          }
+          try
+          {
+            // wait for the connect thread to signal that it finished its job
+            domainMonitor.wait(500);
+          } catch (InterruptedException e)
+          {
+          }
+        }
       }
     }
 

--
Gitblit v1.10.0