From bed658f1ce4871b47cdbb882fdd19f4728ee3de3 Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Mon, 30 Apr 2007 20:53:21 +0000
Subject: [PATCH] Fix for issue #1559: backend NPE upon search when server corrupt. We were registering the backend in the server before we actually initialized it.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java | 60 ++++++++++++++++++++++++++----------------------------------
1 files changed, 26 insertions(+), 34 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 6cd7658..bd5a2c2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -224,34 +224,6 @@
config = new Config();
config.initializeConfig(backendCfg, baseDNs);
- for (DN dn : baseDNs)
- {
- try
- {
- DirectoryServer.registerBaseDN(dn, this, false, false);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- debugCaught(DebugLogLevel.ERROR, e);
- }
-
- int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
- String message = getMessage(msgID, String.valueOf(dn),
- String.valueOf(e));
- throw new InitializationException(msgID, message, e);
- }
- }
-
-/*
- {
- String message = getMessage(MSGID_JEB_SUFFIXES_NOT_SPECIFIED);
- throw new InitializationException(MSGID_JEB_SUFFIXES_NOT_SPECIFIED,
- message);
- }
-*/
-
// Open the database environment
try
{
@@ -269,12 +241,6 @@
throw new InitializationException(MSGID_JEB_OPEN_ENV_FAIL, message, e);
}
- // Register a monitor provider for the environment.
- MonitorProvider monitorProvider =
- rootContainer.getMonitorProvider();
- monitorProviders.add(monitorProvider);
- DirectoryServer.registerMonitorProvider(monitorProvider);
-
try
{
rootContainer.openEntryContainers(baseDNs);
@@ -314,6 +280,32 @@
message, databaseException);
}
+ for (DN dn : baseDNs)
+ {
+ try
+ {
+ DirectoryServer.registerBaseDN(dn, this, false, false);
+ }
+ catch (Exception e)
+ {
+ if (debugEnabled())
+ {
+ debugCaught(DebugLogLevel.ERROR, e);
+ }
+
+ int msgID = MSGID_BACKEND_CANNOT_REGISTER_BASEDN;
+ String message = getMessage(msgID, String.valueOf(dn),
+ String.valueOf(e));
+ throw new InitializationException(msgID, message, e);
+ }
+ }
+
+ // Register a monitor provider for the environment.
+ MonitorProvider monitorProvider =
+ rootContainer.getMonitorProvider();
+ monitorProviders.add(monitorProvider);
+ DirectoryServer.registerMonitorProvider(monitorProvider);
+
// Register this backend as a change listener.
currentConfig = backendCfg;
backendCfg.addJEChangeListener(this);
--
Gitblit v1.10.0