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

Nicolas Capponi
03.21.2016 a98051a8b65eb1d24f8577f60dbbea2dc03b399d
OPENDJ-3417 Fix BackendConfigManager wrt to Backend/LocalBackend
2 files modified
57 ■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java 55 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java 2 ●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
@@ -207,7 +207,7 @@
      // contain a valid backend implementation, then log an error and skip it.
      String className = backendCfg.getJavaClass();
      LocalBackend<? extends BackendCfg> backend;
      Backend<? extends BackendCfg> backend;
      try
      {
        backend = loadBackendClass(className).newInstance();
@@ -677,8 +677,8 @@
      String className = configEntry.getJavaClass();
      try
      {
        Class<LocalBackend<BackendCfg>> backendClass = loadBackendClass(className);
        if (! LocalBackend.class.isAssignableFrom(backendClass))
        Class<Backend<BackendCfg>> backendClass = loadBackendClass(className);
        if (! Backend.class.isAssignableFrom(backendClass))
        {
          unacceptableReason.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get(className, backendDN));
          return false;
@@ -894,7 +894,7 @@
    // backend implementation, then log an error and skip it.
    String className = configEntry.getJavaClass();
    LocalBackend<BackendCfg> backend;
    Backend<BackendCfg> backend;
    try
    {
      backend = loadBackendClass(className).newInstance();
@@ -910,27 +910,30 @@
    // Make sure that all of the base DNs are acceptable for use in the server.
    BaseDnRegistry registry = localBackendsRegistry.copy();
    for (DN baseDN : baseDNs)
    if (backend instanceof LocalBackend<?>)
    {
      if (baseDN.isRootDN())
      BaseDnRegistry registry = localBackendsRegistry.copy();
      for (DN baseDN : baseDNs)
      {
        unacceptableReason.add(ERR_CONFIG_BACKEND_BASE_IS_EMPTY.get(backendDN));
        return false;
      }
      try
      {
        registry.registerBaseDN(baseDN, backend, false);
      }
      catch (DirectoryException de)
      {
        unacceptableReason.add(de.getMessageObject());
        return false;
      }
      catch (Exception e)
      {
        unacceptableReason.add(getExceptionMessage(e));
        return false;
        if (baseDN.isRootDN())
        {
          unacceptableReason.add(ERR_CONFIG_BACKEND_BASE_IS_EMPTY.get(backendDN));
          return false;
        }
        try
        {
          registry.registerBaseDN(baseDN, (LocalBackend<?>) backend, false);
        }
        catch (DirectoryException de)
        {
          unacceptableReason.add(de.getMessageObject());
          return false;
        }
        catch (Exception e)
        {
          unacceptableReason.add(getExceptionMessage(e));
          return false;
        }
      }
    }
@@ -980,7 +983,7 @@
    // backend implementation, then log an error and skip it.
    String className = cfg.getJavaClass();
    LocalBackend<? extends BackendCfg> backend;
    Backend<? extends BackendCfg> backend;
    try
    {
      backend = loadBackendClass(className).newInstance();
@@ -1027,9 +1030,9 @@
  }
  @SuppressWarnings("unchecked")
  private Class<LocalBackend<BackendCfg>> loadBackendClass(String className) throws Exception
  private Class<Backend<BackendCfg>> loadBackendClass(String className) throws Exception
  {
    return (Class<LocalBackend<BackendCfg>>) DirectoryServer.loadClass(className);
    return (Class<Backend<BackendCfg>>) DirectoryServer.loadClass(className);
  }
  private WritabilityMode toWritabilityMode(LocalBackendCfgDefn.WritabilityMode writabilityMode)
opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -17,7 +17,6 @@
package org.opends.server.core;
import static com.forgerock.opendj.cli.CommonArguments.*;
import static org.forgerock.util.Reject.*;
import static org.opends.messages.CoreMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
@@ -85,6 +84,7 @@
import org.opends.server.api.AuthenticationPolicy;
import org.opends.server.api.Backend;
import org.opends.server.api.LocalBackend;
import org.opends.server.api.LocalBackendInitializationListener;
import org.opends.server.api.BackupTaskListener;
import org.opends.server.api.CertificateMapper;
import org.opends.server.api.ClientConnection;