From c4dfbef3eb6972107d56e6fa0851883d6ee41647 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Mon, 16 Feb 2015 17:19:57 +0000
Subject: [PATCH] OPENDJ-1823 CR-6101 backup tool should not fail with NPE when the db folder cannot be read

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java
index 16411d1..53455ec 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java
@@ -55,6 +55,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.*;
 import org.opends.server.util.DynamicConstants;
@@ -332,10 +333,13 @@
     {
       logger.traceException(e);
 
-      message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(
-          backendDir.getAbsolutePath(), stackTraceToSingleLineString(e));
-      throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
-          message, e);
+      message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(backendDir.getAbsolutePath(), archiveFilename);
+      throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), message, e);
+    }
+    if (logFiles == null)
+    {
+      message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(backendDir.getAbsolutePath(), archiveFilename);
+      throw new DirectoryException(ResultCode.NO_SUCH_OBJECT, message);
     }
 
     // Check to see if backend is empty. If so, insert placeholder entry into
@@ -467,10 +471,8 @@
           {
             logger.traceException(e);
 
-            message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(
-                backendDir.getAbsolutePath(), stackTraceToSingleLineString(e));
-            throw new DirectoryException(
-                 DirectoryServer.getServerErrorResultCode(), message, e);
+            message = ERR_JEB_BACKUP_CANNOT_LIST_LOG_FILES.get(backendDir.getAbsolutePath(), archiveFilename);
+            throw new DirectoryException(DirectoryServer.getServerErrorResultCode(), message, e);
           }
 
           if (logFiles == null)

--
Gitblit v1.10.0