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