From 6669e6d8a40905f214d83c36ffade6811b41844b Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Mon, 23 Mar 2015 13:55:15 +0000
Subject: [PATCH] OPENDJ-1727 CR-6350 db-cache-percent default values in persistit backend probably too aggressive

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java        |    3 ++-
 opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java      |    3 ++-
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java |   20 ++++++--------------
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java       |    3 ++-
 opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java      |    5 ++---
 opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java                    |   15 +++------------
 opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PitBackend.java  |    6 ++++--
 7 files changed, 21 insertions(+), 34 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
index d4f59b5..348afa0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
@@ -113,16 +113,6 @@
       new ConcurrentLinkedQueue<PersistentSearch>();
 
   /**
-   * Temporarily sets up the server context for the first phase of add of a new configuration entry.
-   * Needed for checking storage parameters before committing the change in configuration.
-   *
-   * @param context the server context for this instance
-   */
-  public void setServerContext(ServerContext context)
-  {
-  }
-
-  /**
    * Configure this backend based on the information in the provided
    * configuration.
    *
@@ -149,13 +139,14 @@
    * @param  unacceptableReasons  A list that may be used to hold the
    *                              reasons that the provided
    *                              configuration is not acceptable.
-   *
+   * @param serverContext         this Directory Server instance's server context
+   * 
    * @return  {@code true} if the provided configuration is acceptable
    *          for this backend, or {@code false} if not.
    */
   public boolean isConfigurationAcceptable(
                       C configuration,
-                      List<LocalizableMessage> unacceptableReasons)
+                      List<LocalizableMessage> unacceptableReasons, ServerContext serverContext)
   {
     // This default implementation does not perform any special
     // validation.  It should be overridden by backend implementations
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
index 62a73b5..e1fbf41 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
@@ -967,7 +967,8 @@
   /** {@inheritDoc} */
   @Override
   public boolean isConfigurationAcceptable(RootDSEBackendCfg config,
-                                           List<LocalizableMessage> unacceptableReasons)
+                                           List<LocalizableMessage> unacceptableReasons,
+                                           ServerContext serverContext)
   {
     return isConfigurationChangeAcceptable(config, unacceptableReasons);
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
index 81e246d..7ad5d1c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
@@ -954,7 +954,8 @@
   /** {@inheritDoc} */
   @Override
   public boolean isConfigurationAcceptable(LocalDBBackendCfg config,
-                                           List<LocalizableMessage> unacceptableReasons)
+                                           List<LocalizableMessage> unacceptableReasons,
+                                           ServerContext serverContext)
   {
     return isConfigurationChangeAcceptable(config, unacceptableReasons);
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PitBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PitBackend.java
index ef4acc8..52c0e7b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PitBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PitBackend.java
@@ -33,6 +33,7 @@
 import org.opends.server.admin.std.server.PersistitBackendCfg;
 import org.opends.server.backends.pluggable.BackendImpl;
 import org.opends.server.backends.pluggable.spi.Storage;
+import org.opends.server.core.ServerContext;
 
 /**
  * Class defined in the configuration for this backend type.
@@ -40,13 +41,14 @@
 public final class PitBackend extends BackendImpl<PersistitBackendCfg>
 {
   @Override
-  public boolean isConfigurationAcceptable(PersistitBackendCfg cfg, List<LocalizableMessage> unacceptableReasons)
+  public boolean isConfigurationAcceptable(PersistitBackendCfg cfg, List<LocalizableMessage> unacceptableReasons,
+      ServerContext serverContext)
   {
     return PersistItStorage.isConfigurationAcceptable(cfg, unacceptableReasons, serverContext);
   }
 
   @Override
-  protected Storage configureStorage(PersistitBackendCfg cfg) throws ConfigException
+  protected Storage configureStorage(PersistitBackendCfg cfg, ServerContext serverContext) throws ConfigException
   {
     return new PersistItStorage(cfg, serverContext);
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
index 40de1cc..be79802 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
@@ -95,9 +95,6 @@
       OID_SERVER_SIDE_SORT_REQUEST_CONTROL,
       OID_VLV_REQUEST_CONTROL));
 
-  /** The server context for this directory server. */
-  protected ServerContext serverContext;
-
   /**
    * Begin a Backend API method that accesses the database and returns the <code>EntryContainer</code> for
    * <code>entryDN</code>.
@@ -152,9 +149,8 @@
     Reject.ifNull(cfg);
 
     this.cfg = cfg;
-    this.serverContext = serverContext;
     baseDNs = this.cfg.getBaseDN().toArray(new DN[0]);
-    storage = new TracedStorage(configureStorage(cfg), cfg.getBackendId());
+    storage = new TracedStorage(configureStorage(cfg, serverContext), cfg.getBackendId());
   }
 
   /** {@inheritDoc} */
@@ -796,22 +792,18 @@
    *
    * @param cfg
    *          the configuration object
+   * @param serverContext
+   *          this Directory Server intsance's server context
    * @return The storage engine to be used by this pluggable backend.
    * @throws ConfigException
    *           If there is an error in the configuration.
    */
-  protected abstract Storage configureStorage(C cfg) throws ConfigException;
+  protected abstract Storage configureStorage(C cfg, ServerContext serverContext) throws ConfigException;
 
   /** {@inheritDoc} */
   @Override
-  public void setServerContext(ServerContext context)
-  {
-    this.serverContext = context;
-  }
-
-  /** {@inheritDoc} */
-  @Override
-  public boolean isConfigurationAcceptable(C config, List<LocalizableMessage> unacceptableReasons)
+  public boolean isConfigurationAcceptable(C config, List<LocalizableMessage> unacceptableReasons,
+      ServerContext serverContext)
   {
     return isConfigurationChangeAcceptable(config, unacceptableReasons);
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
index d2157e4..db58b54 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
@@ -1721,7 +1721,8 @@
   /** {@inheritDoc} */
   @Override
   public boolean isConfigurationAcceptable(TaskBackendCfg config,
-                                           List<LocalizableMessage> unacceptableReasons)
+                                           List<LocalizableMessage> unacceptableReasons,
+                                           ServerContext serverContext)
   {
     return isConfigAcceptable(config, unacceptableReasons, null);
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
index 733777b..9ca25dc 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
@@ -374,7 +374,7 @@
       }
 
       Backend b = backendClass.newInstance();
-      if (! b.isConfigurationAcceptable(configEntry, unacceptableReason))
+      if (! b.isConfigurationAcceptable(configEntry, unacceptableReason, serverContext))
       {
         return false;
       }
@@ -715,8 +715,7 @@
       }
     }
 
-    backend.setServerContext(serverContext);
-    if (!backend.isConfigurationAcceptable(configEntry, unacceptableReason))
+    if (!backend.isConfigurationAcceptable(configEntry, unacceptableReason, serverContext))
     {
       return false;
     }

--
Gitblit v1.10.0