From b3c070bb2107aec085fa3f16ba1c118a71e30a7b Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Wed, 13 Feb 2008 09:14:39 +0000
Subject: [PATCH] Fix 2911 - dsreplication pre/post-external initialisation fails to clear all the changelogs
---
opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java b/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
index cc6afcb..81798bf 100644
--- a/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
+++ b/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
@@ -112,6 +112,8 @@
*/
private static int replayThreadNumber = 10;
+ private boolean isRegistered = false;
+
/**
* Finds the domain for a given DN.
*
@@ -200,7 +202,6 @@
}
domains.put(domain.getBaseDN(), domain);
- domain.start();
return domain;
}
@@ -321,7 +322,11 @@
{
try
{
- createNewDomain(configuration);
+ ReplicationDomain rd = createNewDomain(configuration);
+ if (isRegistered)
+ {
+ rd.start();
+ }
return new ConfigChangeResult(ResultCode.SUCCESS, false);
} catch (ConfigException e)
{
@@ -507,6 +512,8 @@
@Override
public void finalizeSynchronizationProvider()
{
+ isRegistered = false;
+
// shutdown all the domains
for (ReplicationDomain domain : domains.values())
{
@@ -731,6 +738,18 @@
return new ConfigChangeResult(ResultCode.SUCCESS, false);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void completeSynchronizationProvider()
+ {
+ isRegistered = true;
+
+ // start all the domains
+ for (ReplicationDomain domain : domains.values())
+ {
+ domain.start();
+ }
+ }
}
-
-
--
Gitblit v1.10.0