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