From 7d886d4aec5b1c09cf63882335006e43e2ab2516 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 13 Mar 2007 03:25:41 +0000
Subject: [PATCH] Update the backend config manager to do a more thorough cleanup job when deleting a backend configuration entry.
---
opends/src/server/org/opends/server/core/BackendConfigManager.java | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/opends/src/server/org/opends/server/core/BackendConfigManager.java b/opends/src/server/org/opends/server/core/BackendConfigManager.java
index 28e6391..be51a4d 100644
--- a/opends/src/server/org/opends/server/core/BackendConfigManager.java
+++ b/opends/src/server/org/opends/server/core/BackendConfigManager.java
@@ -2369,6 +2369,37 @@
}
DirectoryServer.deregisterBackend(backend);
+ configEntry.deregisterChangeListener(this);
+
+ // Remove the shared lock for this backend.
+ try
+ {
+ String lockFile = LockFileManager.getBackendLockFileName(backend);
+ StringBuilder failureReason = new StringBuilder();
+ if (! LockFileManager.releaseLock(lockFile, failureReason))
+ {
+ int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
+ String message = getMessage(msgID, backend.getBackendID(),
+ String.valueOf(failureReason));
+ logError(ErrorLogCategory.CONFIGURATION,
+ ErrorLogSeverity.SEVERE_WARNING, message, msgID);
+ // FIXME -- Do we need to send an admin alert?
+ }
+ }
+ catch (Exception e2)
+ {
+ if (debugEnabled())
+ {
+ debugCaught(DebugLogLevel.ERROR, e2);
+ }
+
+ int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK;
+ String message = getMessage(msgID, backend.getBackendID(),
+ stackTraceToSingleLineString(e2));
+ logError(ErrorLogCategory.CONFIGURATION,
+ ErrorLogSeverity.SEVERE_WARNING, message, msgID);
+ // FIXME -- Do we need to send an admin alert?
+ }
return new ConfigChangeResult(resultCode, adminActionRequired,
messages);
--
Gitblit v1.10.0