From 81b66dafd30d3893f5199a7ca5efaae9eff3e180 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 05 Nov 2007 22:14:14 +0000
Subject: [PATCH] Complete fix for issue 2263.

---
 opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
index 56316ee..f1cce3b 100644
--- a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
+++ b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -4144,6 +4144,30 @@
       printProgressMessage(formatter.getFormattedDone());
       printProgressMessage(formatter.getLineBreak());
     }
+
+    // If we must initialize the schema do so.
+    if (mustInitializeSchema(server1, server2))
+    {
+      printProgressMessage(formatter.getFormattedWithPoints(
+          INFO_ENABLE_REPLICATION_INITIALIZING_SCHEMA.get(
+              ConnectionUtils.getHostPort(ctxDestination),
+              ConnectionUtils.getHostPort(ctxSource))));
+
+      if (argParser.useSecondServerAsSchemaSource())
+      {
+        ctxSource = ctx2;
+        ctxDestination = ctx1;
+      }
+      else
+      {
+        ctxSource = ctx1;
+        ctxDestination = ctx2;
+      }
+      initializeSuffix(Constants.SCHEMA_DN, ctxSource,
+          ctxDestination, false);
+      printProgressMessage(formatter.getFormattedDone());
+      printProgressMessage(formatter.getLineBreak());
+    }
   }
 
   /**
@@ -6063,4 +6087,24 @@
     }
     return isLocalHost;
   }
+
+  private boolean mustInitializeSchema(ServerDescriptor server1,
+      ServerDescriptor server2)
+  {
+    boolean mustInitializeSchema = false;
+    if (!argParser.noSchemaReplication())
+    {
+      String id1 = server1.getSchemaReplicationID();
+      String id2 = server2.getSchemaReplicationID();
+      if (id1 != null)
+      {
+        mustInitializeSchema = id1.equals(id2);
+      }
+      else
+      {
+        mustInitializeSchema = true;
+      }
+    }
+    return mustInitializeSchema;
+  }
 }

--
Gitblit v1.10.0