From d1b2ccab3764bc213af1a527e54df4d81812ca12 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 23 Jan 2008 00:01:15 +0000
Subject: [PATCH] Use more specific messages when getting an error when creating or deleting the database directories.
---
opends/src/server/org/opends/server/backends/jeb/RootContainer.java | 6 +++---
opends/src/server/org/opends/server/backends/jeb/BackendImpl.java | 5 ++++-
opends/src/messages/messages/jeb.properties | 4 +++-
opends/src/server/org/opends/server/backends/jeb/EnvManager.java | 15 +++++++++------
4 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/opends/src/messages/messages/jeb.properties b/opends/src/messages/messages/jeb.properties
index 45ac799..94b88c4 100644
--- a/opends/src/messages/messages/jeb.properties
+++ b/opends/src/messages/messages/jeb.properties
@@ -20,7 +20,7 @@
#
# CDDL HEADER END
#
-# Portions Copyright 2006-2007 Sun Microsystems, Inc.
+# Portions Copyright 2006-2008 Sun Microsystems, Inc.
@@ -338,3 +338,5 @@
previous directory %s must be moved to the new directory %s after shutting \
down the backend to retain the existing data
INFO_JEB_IMPORT_STARTING_173=%s starting import (build %s, R%d)
+SEVERE_ERR_JEB_DIRECTORY_DOES_NOT_EXIST_174=The backend database directory \
+ '%s' does not exist
diff --git a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 38339e3..c85fa87 100644
--- a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -1188,9 +1188,12 @@
// have one base DN.
File parentDirectory = getFileForPath(cfg.getDBDirectory());
File backendDirectory = new File(parentDirectory, cfg.getBackendId());
- if (backendDirectory.exists()) {
+ // If the backend does not exist the import will create it.
+ if (backendDirectory.exists())
+ {
EnvManager.removeFiles(backendDirectory.getPath());
}
+
envConfig.setReadOnly(false);
envConfig.setAllowCreate(true);
envConfig.setTransactional(false);
diff --git a/opends/src/server/org/opends/server/backends/jeb/EnvManager.java b/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
index 64aa3af..0ae0835 100644
--- a/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
+++ b/opends/src/server/org/opends/server/backends/jeb/EnvManager.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.backends.jeb;
import org.opends.messages.Message;
@@ -30,10 +30,7 @@
import static org.opends.server.loggers.debug.DebugLogger.*;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.types.DebugLogLevel;
-import static org.opends.messages.JebMessages.ERR_JEB_CREATE_FAIL;
-import static org.opends.messages.JebMessages.
- ERR_JEB_DIRECTORY_INVALID;
-import static org.opends.messages.JebMessages.ERR_JEB_REMOVE_FAIL;
+import static org.opends.messages.JebMessages.*;
import java.io.File;
import java.io.FilenameFilter;
@@ -115,12 +112,18 @@
* The environment must not be open.
*
* @param homeDir The backend home directory
- * @throws JebException If an error occurs in the JE backend.
+ * @throws JebException If an error occurs in the JE backend or if the
+ * specified home directory does not exist.
*/
public static void removeFiles(String homeDir)
throws JebException
{
File dir = new File(homeDir);
+ if (!dir.exists())
+ {
+ Message message = ERR_JEB_DIRECTORY_DOES_NOT_EXIST.get(homeDir);
+ throw new JebException(message);
+ }
if (!dir.isDirectory())
{
Message message = ERR_JEB_DIRECTORY_INVALID.get(homeDir);
diff --git a/opends/src/server/org/opends/server/backends/jeb/RootContainer.java b/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
index 09507b7..c7489f3 100644
--- a/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
+++ b/opends/src/server/org/opends/server/backends/jeb/RootContainer.java
@@ -152,7 +152,7 @@
if(!backendDirectory.mkdirs())
{
Message message =
- ERR_JEB_DIRECTORY_INVALID.get(backendDirectory.getPath());
+ ERR_JEB_CREATE_FAIL.get(backendDirectory.getPath());
throw new ConfigException(message);
}
}
@@ -734,7 +734,7 @@
if(!backendDirectory.mkdirs())
{
Message message =
- ERR_JEB_DIRECTORY_INVALID.get(backendDirectory.getPath());
+ ERR_JEB_CREATE_FAIL.get(backendDirectory.getPath());
unacceptableReasons.add(message);
acceptable = false;
}
@@ -886,7 +886,7 @@
{
if(!backendDirectory.mkdirs())
{
- messages.add(ERR_JEB_DIRECTORY_INVALID.get(
+ messages.add(ERR_JEB_CREATE_FAIL.get(
backendDirectory.getPath()));
ccr = new ConfigChangeResult(
DirectoryServer.getServerErrorResultCode(),
--
Gitblit v1.10.0