mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Fabio Pistolesi
16.19.2015 c4dfbef3eb6972107d56e6fa0851883d6ee41647
OPENDJ-1823 CR-6101 backup tool should not fail with NPE when the db folder cannot be read

The error case where the DB directory itself is missing/unreadable was not properly managed.
2 files modified
36 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackupManager.java 18 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackupManager.java 18 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/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;
@@ -340,10 +341,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
@@ -476,10 +480,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)
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)