From 9b3d689c46eadcb288b8e751c866b0f630130409 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Thu, 15 Nov 2007 16:50:07 +0000
Subject: [PATCH] Fix #2424 impact of generation ID on binary copy - an LDAP server that has already sent changes must not be able to replicate with an empty replication server
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index 41fcfae..15de178 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -359,7 +359,25 @@
}
else
{
- replicationCache.setGenerationId(generationId, false);
+ // We are an empty Replicationserver
+ if ((generationId>0)&&(!serverState.isEmpty()))
+ {
+ // If the LDAP server has already sent changes
+ // it is not expected to connect to an empty RS
+ Message message = NOTE_BAD_GENERATION_ID.get(
+ receivedMsg.getBaseDn().toNormalizedString(),
+ Short.toString(receivedMsg.getServerId()),
+ Long.toString(generationId),
+ Long.toString(localGenerationId));
+
+ ErrorMessage errorMsg =
+ new ErrorMessage(replicationServerId, serverId, message);
+ session.publish(errorMsg);
+ }
+ else
+ {
+ replicationCache.setGenerationId(generationId, false);
+ }
}
}
else if (msg instanceof ReplServerStartMessage)
--
Gitblit v1.10.0