From 1b66c5e83ffbd4e8ffa7a6c94add9262da08c68e Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Mon, 26 May 2008 15:48:09 +0000
Subject: [PATCH] Fix 3276 - dsreplication post-external-initialization should return (an error) if replication plugin is stopped
---
opendj-sdk/opends/src/server/org/opends/server/tasks/SetGenerationIdTask.java | 10 +++++++++-
opendj-sdk/opends/src/messages/messages/replication.properties | 5 ++++-
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java | 11 +++++++++++
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/messages/messages/replication.properties b/opendj-sdk/opends/src/messages/messages/replication.properties
index 86bd3d6..9efd1c4 100644
--- a/opendj-sdk/opends/src/messages/messages/replication.properties
+++ b/opendj-sdk/opends/src/messages/messages/replication.properties
@@ -275,4 +275,7 @@
NOTICE_IGNORING_REMOTE_MONITOR_DATA_116=Some monitor data have been received \
from the server with server ID %s too late and are ignored
NOTICE_SERVER_STATE_RECOVERY_117=ServerState recovery for domain %s, \
-updated with changeNumber %s
\ No newline at end of file
+updated with changeNumber %s
+SEVERE_ERR_RESET_GENERATION_CONN_ERR_ID_118=The generation ID could not be \
+reset for domain %s because it is NOT connected to the replication. You should \
+check in the configuration that the domain is enabled
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
index 3f21859..05a9386 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java
@@ -2525,13 +2525,24 @@
* their change dbs.
*
* @param generationIdNewValue The new value of the generation Id.
+ * @throws DirectoryException when an error occurs
*/
public void resetGenerationId(Long generationIdNewValue)
+ throws DirectoryException
{
if (debugEnabled())
TRACER.debugInfo(
this.getName() + "resetGenerationId" + generationIdNewValue);
+ if (!isConnected())
+ {
+ ResultCode resultCode = ResultCode.OTHER;
+ Message message = ERR_RESET_GENERATION_CONN_ERR_ID.get(
+ baseDN.toNormalizedString());
+ throw new DirectoryException(
+ resultCode, message);
+ }
+
ResetGenerationId genIdMessage = null;
if (generationIdNewValue == null)
{
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/SetGenerationIdTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/SetGenerationIdTask.java
index 2ccaf61..f6b9a84 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/SetGenerationIdTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/SetGenerationIdTask.java
@@ -150,7 +150,15 @@
debugInfo("setGenerationIdTask is starting on domain%s" +
domain.getBaseDN());
- domain.resetGenerationId(generationId);
+ try
+ {
+ domain.resetGenerationId(generationId);
+ }
+ catch(DirectoryException de)
+ {
+ logError(de.getMessageObject());
+ return TaskState.STOPPED_BY_ERROR;
+ }
debugInfo("setGenerationIdTask is ending SUCCESSFULLY");
return TaskState.COMPLETED_SUCCESSFULLY;
--
Gitblit v1.10.0