From ce9ca7e5c6232787936e5de08f2366ea5f4a0c3e Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Fri, 02 May 2008 13:04:12 +0000
Subject: [PATCH] Fix on issue #3185 (restore --dry-run *does* actually do something to the backend)
---
opends/src/server/org/opends/server/tasks/RestoreTask.java | 56 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 30 insertions(+), 26 deletions(-)
diff --git a/opends/src/server/org/opends/server/tasks/RestoreTask.java b/opends/src/server/org/opends/server/tasks/RestoreTask.java
index d198680..8111b24 100644
--- a/opends/src/server/org/opends/server/tasks/RestoreTask.java
+++ b/opends/src/server/org/opends/server/tasks/RestoreTask.java
@@ -347,19 +347,21 @@
DirectoryServer.notifyRestoreBeginning(backend, restoreConfig);
// Disable the backend.
- try
+ if ( !verifyOnly)
{
- TaskUtils.disableBackend(backendID);
- }
- catch (DirectoryException e)
- {
- if (debugEnabled())
+ try
{
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
+ TaskUtils.disableBackend(backendID);
+ } catch (DirectoryException e)
+ {
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, e);
+ }
- logError(e.getMessageObject());
- return TaskState.STOPPED_BY_ERROR;
+ logError(e.getMessageObject());
+ return TaskState.STOPPED_BY_ERROR;
+ }
}
// From here we must make sure to re-enable the backend before returning.
@@ -367,7 +369,7 @@
try
{
// Acquire an exclusive lock for the backend.
- if (lockBackend(backend))
+ if (verifyOnly || lockBackend(backend))
{
// From here we must make sure to release the backend exclusive lock.
try
@@ -397,7 +399,7 @@
finally
{
// Release the exclusive lock on the backend.
- if (!unlockBackend(backend))
+ if ( (!verifyOnly) && !unlockBackend(backend))
{
errorsEncountered = true;
}
@@ -407,23 +409,25 @@
finally
{
// Enable the backend.
- try
+ if (! verifyOnly)
{
- TaskUtils.enableBackend(backendID);
- // 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)
- {
- if (debugEnabled())
+ try
{
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
+ TaskUtils.enableBackend(backendID);
+ // 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)
+ {
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, e);
+ }
- logError(e.getMessageObject());
- errorsEncountered = true;
+ logError(e.getMessageObject());
+ errorsEncountered = true;
+ }
}
DirectoryServer.notifyRestoreEnded(backend, restoreConfig, true);
}
--
Gitblit v1.10.0