From 74be925257cd0df68cfde1a77f77cbb930c7832f Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Wed, 24 Oct 2007 14:04:25 +0000
Subject: [PATCH] Fix 2425 - dsreplication initialize-all fails - fix ConcurrentModificationException in the Initialize task by using methods that lock the entry - fix unroutable message, by forwarding message only to the replication servers that have   replica connected Miscellaneous improvements in error or debug traces

---
 opends/src/server/org/opends/server/replication/server/ReplicationCache.java |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationCache.java b/opends/src/server/org/opends/server/replication/server/ReplicationCache.java
index 279871a..89140e9 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationCache.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationCache.java
@@ -617,10 +617,14 @@
     {
       if (!senderHandler.isReplicationServer())
       {
-        // Send to all replicationServers
-        for (ServerHandler destinationHandler : replicationServers.values())
+        // Send to all replication servers with a least one remote
+        // server connected
+        for (ServerHandler rsh : replicationServers.values())
         {
-          servers.add(destinationHandler);
+          if (!rsh.getRemoteLDAPServers().isEmpty())
+          {
+            servers.add(rsh);
+          }
         }
       }
 
@@ -651,6 +655,8 @@
         {
           for (ServerHandler h : replicationServers.values())
           {
+            // Send to all replication servers with a least one remote
+            // server connected
             if (h.isRemoteLDAPServer(msg.getDestination()))
             {
               servers.add(h);
@@ -696,13 +702,16 @@
     {
       MessageBuilder mb = new MessageBuilder();
       mb.append(ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get());
-      mb.append(" unreachable server ID=" + msg.getDestination());
-      mb.append(" unroutable message =" + msg);
+      mb.append(" In Replication Server=" + this.replicationServer.
+          getMonitorInstanceName());
+      mb.append(" domain =" + this.baseDn);
+      mb.append(" unroutable message =" + msg.toString());
+      mb.append(" routing table is empty");
       ErrorMessage errMsg = new ErrorMessage(
           this.replicationServer.getServerId(),
           msg.getsenderID(),
           mb.toMessage());
-
+      logError(mb.toMessage());
       try
       {
         senderHandler.send(errMsg);

--
Gitblit v1.10.0