From 5c47ab553c1fa329dbad90f5ecfd98b84e518cac Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Mon, 26 Mar 2007 07:17:13 +0000
Subject: [PATCH] This commit allows to complete issues 504, 505 and 507 by using the new import/export/backup/restore interface to get notifications of import and restore and then resynchronize the server approprietely.
---
opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java b/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
index c5b0565..8082c1c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tasks/RestoreTask.java
@@ -289,6 +289,11 @@
RestoreConfig restoreConfig = new RestoreConfig(backupDir, backupID,
verifyOnly);
+ // Notify the task listeners that a restore is going to start
+ // this must be done before disabling the backend to allow
+ // listener to get access to the backend configuration
+ // and to take appropriate actions.
+ DirectoryServer.notifyRestoreBeginning(backend, restoreConfig);
// Disable the backend.
try
@@ -307,7 +312,6 @@
return TaskState.STOPPED_BY_ERROR;
}
-
// From here we must make sure to re-enable the backend before returning.
boolean errorsEncountered = false;
try
@@ -321,9 +325,7 @@
// Perform the restore.
try
{
- DirectoryServer.notifyRestoreBeginning(backend, restoreConfig);
backend.restoreBackup(configEntry, restoreConfig);
- DirectoryServer.notifyRestoreEnded(backend, restoreConfig, true);
}
catch (DirectoryException de)
{
@@ -362,6 +364,10 @@
try
{
TaskUtils.setBackendEnabled(configEntry, true);
+ // it is necessary to retrieve the backend structure again
+ // because disabling and enabling it again may have resulted
+ // in a new backend being registered to the server.
+ backend = DirectoryServer.getBackend(backendID);
}
catch (DirectoryException e)
{
@@ -374,6 +380,7 @@
e.getErrorMessage(), e.getErrorMessageID());
errorsEncountered = true;
}
+ DirectoryServer.notifyRestoreEnded(backend, restoreConfig, true);
}
if (errorsEncountered)
--
Gitblit v1.10.0