From ac27a41b85595ecd2444a64d822ab37aa8722fed Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Thu, 21 May 2015 09:34:32 +0000
Subject: [PATCH] Use backendID for entry cache rather than backend instance.  RootContainer is now directly constructed with the Storage rather than getting it from the Backend.

---
 opendj-server-legacy/src/main/java/org/opends/server/api/EntryCache.java                       |   47 ++++---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java     |   24 +--
 opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java         |   23 +--
 opendj-server-legacy/src/test/java/org/opends/server/extensions/CommonEntryCacheTestCase.java  |   33 ++--
 opendj-server-legacy/src/main/java/org/opends/server/extensions/FIFOEntryCache.java            |   72 +++++------
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java          |   27 ++--
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java           |    3 
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java    |   24 +--
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java       |   10 -
 opendj-server-legacy/src/test/java/org/opends/server/extensions/FIFOEntryCacheTestCase.java    |    7 
 opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java |    5 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/SoftReferenceEntryCache.java   |   45 +++---
 opendj-server-legacy/src/main/java/org/opends/server/types/CacheEntry.java                     |   14 +-
 13 files changed, 159 insertions(+), 175 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/EntryCache.java b/opendj-server-legacy/src/main/java/org/opends/server/api/EntryCache.java
index 3edaf6c..570550d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/EntryCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/EntryCache.java
@@ -196,18 +196,18 @@
   /**
    * Retrieves the requested entry if it is present in the cache.
    *
-   * @param  backend   The backend associated with the entry to
-   *                   retrieve.
+   * @param  backendID   ID of the backend associated with the entry
+   *                     to retrieve.
    * @param  entryID   The entry ID within the provided backend for
    *                   the specified entry.
    *
    * @return  The requested entry if it is present in the cache, or
    *          {@code null} if it is not present.
    */
-  public Entry getEntry(Backend backend, long entryID)
+  public Entry getEntry(String backendID, long entryID)
   {
     // Translate given backend/entryID pair to entryDN.
-    DN entryDN = getEntryDN(backend, entryID);
+    DN entryDN = getEntryDN(backendID, entryID);
     if (entryDN == null)
     {
       // Indicate cache miss.
@@ -239,15 +239,15 @@
    * Note that this method is called from @see #getEntry(Backend
    * backend, long entryID, LockType lockType, List lockList)
    *
-   * @param  backend  The backend associated with the entry for
-   *                  which to retrieve the entry DN.
-   * @param  entryID  The entry ID within the provided backend
-   *                  for which to retrieve the entry DN.
+   * @param  backendID  ID of the backend associated with the
+   *                    entry for which to retrieve the entry DN.
+   * @param  entryID    The entry ID within the provided backend
+   *                    for which to retrieve the entry DN.
    *
    * @return  The entry DN for the requested entry, or
    *          {@code null} if it is not present in the cache.
    */
-  public abstract DN getEntryDN(Backend backend, long entryID);
+  public abstract DN getEntryDN(String backendID, long entryID);
 
   /**
    * Stores the provided entry in the cache.  Note that the mechanism
@@ -255,13 +255,13 @@
    * is acceptable for the entry to not actually be stored in any
    * cache.
    *
-   * @param  entry    The entry to store in the cache.
-   * @param  backend  The backend with which the entry is associated.
-   * @param  entryID  The entry ID within the provided backend that
-   *                  uniquely identifies the specified entry.
+   * @param  entry      The entry to store in the cache.
+   * @param  backendID  ID of the backend with which the entry is
+   *                    associated.
+   * @param  entryID    The entry ID within the provided backend that
+   *                    uniquely identifies the specified entry.
    */
-  public abstract void putEntry(Entry entry, Backend backend,
-                                long entryID);
+  public abstract void putEntry(Entry entry, String backendID, long entryID);
 
   /**
    * Stores the provided entry in the cache only if it does not
@@ -271,10 +271,11 @@
    * not actually be stored in any cache.  However, this method must
    * not overwrite an existing version of the entry.
    *
-   * @param  entry    The entry to store in the cache.
-   * @param  backend  The backend with which the entry is associated.
-   * @param  entryID  The entry ID within the provided backend that
-   *                  uniquely identifies the specified entry.
+   * @param  entry      The entry to store in the cache.
+   * @param  backendID  ID of the backend with which the entry is
+   *                    associated.
+   * @param  entryID    The entry ID within the provided backend that
+   *                    uniquely identifies the specified entry.
    *
    * @return  {@code false} if an existing entry or some other problem
    *          prevented the method from completing successfully, or
@@ -283,7 +284,7 @@
    *          should never be cached for some reason.
    */
   public abstract boolean putEntryIfAbsent(Entry entry,
-                                           Backend backend,
+                                           String backendID,
                                            long entryID);
 
   /**
@@ -303,10 +304,10 @@
    * Removes all entries from the cache that are associated with the
    * provided backend.
    *
-   * @param  backend  The backend for which to flush the associated
-   *                  entries.
+   * @param  backendID  ID of the backend for which to flush the
+   *                    associated entries.
    */
-  public abstract void clearBackend(Backend backend);
+  public abstract void clearBackend(String backendID);
 
   /**
    * Removes all entries from the cache that are below the provided
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java
index d7fdf3e..9371eb4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/EntryContainer.java
@@ -46,7 +46,6 @@
 import org.opends.server.admin.std.server.LocalDBBackendCfg;
 import org.opends.server.admin.std.server.LocalDBIndexCfg;
 import org.opends.server.admin.std.server.LocalDBVLVIndexCfg;
-import org.opends.server.api.Backend;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.EntryCache;
 import org.opends.server.api.plugin.PluginResult.SubordinateDelete;
@@ -96,8 +95,8 @@
   /** The vlv index configuration manager. */
   private final VLVJEIndexCfgManager vlvJEIndexCfgManager;
 
-  /** The backend to which this entry container belongs. */
-  private final Backend<?> backend;
+  /** ID of the backend to which this entry container belongs. */
+  private final String backendID;
 
   /** The root container in which this entryContainer belongs. */
   private final RootContainer rootContainer;
@@ -366,19 +365,19 @@
    *                storing on disk.
    * @param databasePrefix The prefix to use in the database names used by
    *                       this entry container.
-   * @param backend A reference to the JE backend that is creating this entry
-   *                container. It is needed by the Directory Server entry cache
-   *                methods.
+   * @param backendID ID of the JE backend that is creating this entry
+   *                  container. It is needed by the Directory Server
+   *                  entry cache methods.
    * @param config The configuration of the JE backend.
    * @param env The JE environment to create this entryContainer in.
    * @param rootContainer The root container this entry container is in.
    * @throws ConfigException if a configuration related error occurs.
    */
-  EntryContainer(DN baseDN, String databasePrefix, Backend<?> backend,
+  EntryContainer(DN baseDN, String databasePrefix, String backendID,
       LocalDBBackendCfg config, Environment env, RootContainer rootContainer)
           throws ConfigException
   {
-    this.backend = backend;
+    this.backendID = backendID;
     this.baseDN = baseDN;
     this.config = config;
     this.env = env;
@@ -446,7 +445,7 @@
         }
         id2subtree.open(); // No-op
 
-        logger.info(NOTE_JEB_SUBORDINATE_INDEXES_DISABLED, backend.getBackendID());
+        logger.info(NOTE_JEB_SUBORDINATE_INDEXES_DISABLED, backendID);
       }
 
       dn2uri = new DN2URI(databasePrefix + "_" + REFERRAL_DATABASE_NAME, env, this);
@@ -1214,7 +1213,7 @@
   {
     // Try the entry cache first.
     final EntryCache<?> entryCache = getEntryCache();
-    final Entry cacheEntry = entryCache.getEntry(backend, entryID.longValue());
+    final Entry cacheEntry = entryCache.getEntry(backendID, entryID.longValue());
     if (cacheEntry != null)
     {
       return cacheEntry;
@@ -1225,7 +1224,7 @@
     {
       // Put the entry in the cache making sure not to overwrite a newer copy
       // that may have been inserted since the time we read the cache.
-      entryCache.putEntryIfAbsent(entry, backend, entryID.longValue());
+      entryCache.putEntryIfAbsent(entry, backendID, entryID.longValue());
     }
     return entry;
   }
@@ -1519,7 +1518,7 @@
       EntryCache<?> entryCache = DirectoryServer.getEntryCache();
       if (entryCache != null)
       {
-        entryCache.putEntry(entry, backend, entryID.longValue());
+        entryCache.putEntry(entry, backendID, entryID.longValue());
       }
     }
     catch (DatabaseException | DirectoryException | CanceledOperationException e)
@@ -1886,7 +1885,7 @@
        * Put the entry in the cache making sure not to overwrite a newer copy that may have been
        * inserted since the time we read the cache.
        */
-      entryCache.putEntryIfAbsent(entry, backend, entryID.longValue());
+      entryCache.putEntryIfAbsent(entry, backendID, entryID.longValue());
     }
     return entry;
   }
@@ -1972,7 +1971,7 @@
       EntryCache<?> entryCache = DirectoryServer.getEntryCache();
       if (entryCache != null)
       {
-        entryCache.putEntry(newEntry, backend, entryID.longValue());
+        entryCache.putEntry(newEntry, backendID, entryID.longValue());
       }
     }
     catch (DatabaseException | DirectoryException | CanceledOperationException e)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java
index 51cc94c..38fcc75 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/RootContainer.java
@@ -234,8 +234,7 @@
       databasePrefix = name;
     }
 
-    EntryContainer ec = new EntryContainer(baseDN, databasePrefix,
-                                           backend, config, env, this);
+    EntryContainer ec = new EntryContainer(baseDN, databasePrefix, backend.getBackendID(), config, env, this);
     ec.open();
     return ec;
   }
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 29d41a7..08cff51 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
@@ -88,7 +88,7 @@
   private Storage storage;
 
   /** The controls supported by this backend. */
-  private static final Set<String> supportedControls = new HashSet<String>(Arrays.asList(
+  private static final Set<String> supportedControls = new HashSet<>(Arrays.asList(
       OID_SUBTREE_DELETE_CONTROL,
       OID_PAGED_RESULTS_CONTROL,
       OID_MANAGE_DSAIT_CONTROL,
@@ -146,7 +146,7 @@
   @Override
   public void configureBackend(C cfg, ServerContext serverContext) throws ConfigException
   {
-    Reject.ifNull(cfg);
+    Reject.ifNull(cfg, "cfg must not be null");
 
     this.cfg = cfg;
     baseDNs = this.cfg.getBaseDN().toArray(new DN[0]);
@@ -981,7 +981,7 @@
           throws ConfigException, InitializationException {
     // Open the storage
     try {
-      RootContainer rc = new RootContainer(this, cfg);
+      final RootContainer rc = new RootContainer(getBackendID(), storage, cfg);
       rc.open();
       return rc;
     }
@@ -991,8 +991,4 @@
     }
   }
 
-  Storage getStorage()
-  {
-    return storage;
-  }
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index 5faf93f..32eda1c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -68,7 +68,6 @@
 import org.opends.server.admin.std.server.BackendIndexCfg;
 import org.opends.server.admin.std.server.BackendVLVIndexCfg;
 import org.opends.server.admin.std.server.PluggableBackendCfg;
-import org.opends.server.api.Backend;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.EntryCache;
 import org.opends.server.api.VirtualAttributeProvider;
@@ -143,8 +142,8 @@
   /** The vlv index configuration manager. */
   private final VLVIndexCfgManager vlvIndexCfgManager;
 
-  /** The backend to which this entry container belongs. */
-  private final Backend<?> backend;
+  /** ID of the backend to which this entry container belongs. */
+  private final String backendID;
 
   /** The root container in which this entryContainer belongs. */
   private final RootContainer rootContainer;
@@ -421,18 +420,17 @@
    *
    * @param baseDN  The baseDN this entry container will be responsible for
    *                storing on disk.
-   * @param backend A reference to the backend that is creating this entry
-   *                container. It is needed by the Directory Server entry cache
-   *                methods.
+   * @param backendID  ID of the backend that is creating this entry container.
+   *                   It is needed by the Directory Server entry cache methods.
    * @param config The configuration of the backend.
    * @param storage The storage for this entryContainer.
    * @param rootContainer The root container this entry container is in.
    * @throws ConfigException if a configuration related error occurs.
    */
-  EntryContainer(DN baseDN, Backend<?> backend, PluggableBackendCfg config, Storage storage,
+  EntryContainer(DN baseDN, String backendID, PluggableBackendCfg config, Storage storage,
       RootContainer rootContainer) throws ConfigException
   {
-    this.backend = backend;
+    this.backendID = backendID;
     this.baseDN = baseDN;
     this.config = config;
     this.storage = storage;
@@ -1288,7 +1286,7 @@
   {
     // Try the entry cache first.
     final EntryCache<?> entryCache = getEntryCache();
-    final Entry cacheEntry = entryCache.getEntry(backend, entryID.longValue());
+    final Entry cacheEntry = entryCache.getEntry(backendID, entryID.longValue());
     if (cacheEntry != null)
     {
       return cacheEntry;
@@ -1299,7 +1297,7 @@
     {
       // Put the entry in the cache making sure not to overwrite a newer copy
       // that may have been inserted since the time we read the cache.
-      entryCache.putEntryIfAbsent(entry, backend, entryID.longValue());
+      entryCache.putEntryIfAbsent(entry, backendID, entryID.longValue());
     }
     return entry;
   }
@@ -1543,7 +1541,7 @@
             EntryCache<?> entryCache = DirectoryServer.getEntryCache();
             if (entryCache != null)
             {
-              entryCache.putEntry(entry, backend, entryID.longValue());
+              entryCache.putEntry(entry, backendID, entryID.longValue());
             }
           }
           catch (StorageRuntimeException | DirectoryException | CanceledOperationException e)
@@ -1907,7 +1905,7 @@
          * Put the entry in the cache making sure not to overwrite a newer copy that may have been
          * inserted since the time we read the cache.
          */
-        entryCache.putEntryIfAbsent(entry, backend, entryID.longValue());
+        entryCache.putEntryIfAbsent(entry, backendID, entryID.longValue());
       }
       return entry;
     }
@@ -1999,7 +1997,7 @@
             EntryCache<?> entryCache = DirectoryServer.getEntryCache();
             if (entryCache != null)
             {
-              entryCache.putEntry(newEntry, backend, entryID.longValue());
+              entryCache.putEntry(newEntry, backendID, entryID.longValue());
             }
           }
           catch (StorageRuntimeException | DirectoryException | CanceledOperationException e)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
index c0ba4bb..9e00d76 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/RootContainer.java
@@ -70,10 +70,10 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   /** The tree storage. */
-  private Storage storage;
+  private final Storage storage;
 
-  /** The backend to which this entry root container belongs. */
-  private final BackendImpl<?> backend;
+  /** The ID of the backend to which this entry root container belongs. */
+  private final String backendId;
   /** The backend configuration. */
   private final PluggableBackendCfg config;
   /** The monitor for this backend. */
@@ -93,13 +93,14 @@
    *
    * @param config
    *          The configuration of the backend.
-   * @param backend
+   * @param backendID
    *          A reference to the backend that is creating this root
    *          container.
    */
-  RootContainer(BackendImpl<?> backend, PluggableBackendCfg config)
+  RootContainer(String backendID, Storage storage, PluggableBackendCfg config)
   {
-    this.backend = backend;
+    this.backendId = backendID;
+    this.storage = storage;
     this.config = config;
 
     getMonitorProvider().enableFilterUseStats(config.isIndexFilterAnalyzerEnabled());
@@ -130,7 +131,6 @@
   {
     try
     {
-      storage = backend.getStorage();
       storage.open();
       storage.write(new WriteOperation()
       {
@@ -169,7 +169,7 @@
   EntryContainer openEntryContainer(DN baseDN, WriteableTransaction txn)
       throws StorageRuntimeException, ConfigException
   {
-    EntryContainer ec = new EntryContainer(baseDN, backend, config, storage, this);
+    EntryContainer ec = new EntryContainer(baseDN, backendId, config, storage, this);
     ec.open(txn);
     return ec;
   }
@@ -258,8 +258,7 @@
   {
     if (monitor == null)
     {
-      String monitorName = backend.getBackendID() + " Storage";
-      monitor = new BackendMonitor(monitorName, this);
+      monitor = new BackendMonitor(backendId + " Storage", this);
     }
     return monitor;
   }
@@ -300,9 +299,7 @@
       }
       catch (StorageRuntimeException e)
       {
-        logger.traceException(e);
-
-        logger.error(ERR_CACHE_PRELOAD, backend.getBackendID(),
+        logger.error(ERR_CACHE_PRELOAD, backendId,
             stackTraceToSingleLineString(e.getCause() != null ? e.getCause() : e));
       }
     }
@@ -333,7 +330,6 @@
     if (storage != null)
     {
       storage.close();
-      storage = null;
     }
   }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
index 9f8b7b7..c78f4e0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
@@ -119,11 +119,11 @@
 
   /** {@inheritDoc} */
   @Override
-  public Entry getEntry(Backend backend, long entryID)
+  public Entry getEntry(String backendID, long entryID)
   {
     for (EntryCache<? extends EntryCacheCfg> entryCache : cacheOrder)
     {
-      Entry entry = entryCache.getEntry(backend, entryID);
+      Entry entry = entryCache.getEntry(backendID, entryID);
       if (entry != null)
       {
         return entry.duplicate(true);
@@ -176,11 +176,11 @@
 
   /** {@inheritDoc} */
   @Override
-  public DN getEntryDN(Backend backend, long entryID)
+  public DN getEntryDN(String backendID, long entryID)
   {
     for (EntryCache<?> entryCache : cacheOrder)
     {
-      DN entryDN = entryCache.getEntryDN(backend, entryID);
+      DN entryDN = entryCache.getEntryDN(backendID, entryID);
       if (entryDN != null)
       {
         return entryDN;
@@ -191,14 +191,13 @@
 
   /** {@inheritDoc} */
   @Override
-  public void putEntry(Entry entry, Backend backend, long entryID)
+  public void putEntry(Entry entry, String backendID, long entryID)
   {
     for (EntryCache<?> entryCache : cacheOrder) {
       // The first cache in the order which can take this entry
       // gets it.
       if (entryCache.filtersAllowCaching(entry)) {
-        entryCache.putEntry(entry.duplicate(false),
-                backend, entryID);
+        entryCache.putEntry(entry.duplicate(false), backendID, entryID);
         break;
       }
     }
@@ -206,14 +205,14 @@
 
   /** {@inheritDoc} */
   @Override
-  public boolean putEntryIfAbsent(Entry entry, Backend backend, long entryID)
+  public boolean putEntryIfAbsent(Entry entry, String backendID, long entryID)
   {
     for (EntryCache<?> entryCache : cacheOrder) {
       // The first cache in the order which can take this entry
       // gets it.
       if (entryCache.filtersAllowCaching(entry)) {
         return entryCache.putEntryIfAbsent(entry.duplicate(false),
-                backend, entryID);
+                backendID, entryID);
       }
     }
 
@@ -243,10 +242,10 @@
 
   /** {@inheritDoc} */
   @Override
-  public void clearBackend(Backend backend)
+  public void clearBackend(String backendID)
   {
     for (EntryCache<?> entryCache : cacheOrder) {
-      entryCache.clearBackend(backend);
+      entryCache.clearBackend(backendID);
     }
   }
 
@@ -407,7 +406,7 @@
     // Do not clear any backends if the server is shutting down.
     if (!DirectoryServer.getInstance().isShuttingDown())
     {
-      clearBackend(backend);
+      clearBackend(backend.getBackendID());
     }
   }
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FIFOEntryCache.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FIFOEntryCache.java
index 54c1a96..35ad245 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FIFOEntryCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FIFOEntryCache.java
@@ -91,7 +91,7 @@
   private static final Runtime runtime = Runtime.getRuntime();
 
   /** The mapping between entry backends/IDs and entries. */
-  private Map<Backend<?>, Map<Long, CacheEntry>> idMap;
+  private Map<String, Map<Long, CacheEntry>> idMap;
 
   /** The mapping between DNs and entries. */
   private LinkedHashMap<DN,CacheEntry> dnMap;
@@ -232,12 +232,12 @@
 
   /** {@inheritDoc} */
   @Override
-  public DN getEntryDN(Backend backend, long entryID)
+  public DN getEntryDN(String backendID, long entryID)
   {
     // Locate specific backend map and return the entry DN by ID.
     cacheReadLock.lock();
     try {
-      Map<Long, CacheEntry> backendMap = idMap.get(backend);
+      Map<Long, CacheEntry> backendMap = idMap.get(backendID);
       if (backendMap != null) {
         CacheEntry e = backendMap.get(entryID);
         if (e != null) {
@@ -252,10 +252,10 @@
 
   /** {@inheritDoc} */
   @Override
-  public void putEntry(Entry entry, Backend backend, long entryID)
+  public void putEntry(Entry entry, String backendID, long entryID)
   {
     // Create the cache entry based on the provided information.
-    CacheEntry cacheEntry = new CacheEntry(entry, backend, entryID);
+    CacheEntry cacheEntry = new CacheEntry(entry, backendID, entryID);
 
 
     // Obtain a lock on the cache.  If this fails, then don't do anything.
@@ -295,7 +295,7 @@
             CacheEntry ce = iterator.next();
             iterator.remove();
 
-            Map<Long,CacheEntry> m = idMap.get(ce.getBackend());
+            Map<Long,CacheEntry> m = idMap.get(ce.getBackendID());
             if (m != null)
             {
               m.remove(ce.getEntryID());
@@ -305,14 +305,14 @@
         else
         {
           // Try to remove the entry from the ID list as well.
-          Map<Long,CacheEntry> map = idMap.get(backend);
+          Map<Long,CacheEntry> map = idMap.get(backendID);
           if (map != null)
           {
             map.remove(cacheEntry.getEntryID());
             // If this backend becomes empty now remove it from the idMap map.
             if (map.isEmpty())
             {
-              idMap.remove(backend);
+              idMap.remove(backendID);
             }
           }
         }
@@ -324,12 +324,12 @@
         // present and add it if it isn't.
         dnMap.put(entry.getName(), cacheEntry);
 
-        Map<Long,CacheEntry> map = idMap.get(backend);
+        Map<Long,CacheEntry> map = idMap.get(backendID);
         if (map == null)
         {
           map = new HashMap<>();
           map.put(entryID, cacheEntry);
-          idMap.put(backend, map);
+          idMap.put(backendID, map);
         }
         else
         {
@@ -349,7 +349,7 @@
             CacheEntry ce = iterator.next();
             iterator.remove();
 
-            Map<Long,CacheEntry> m = idMap.get(ce.getBackend());
+            Map<Long,CacheEntry> m = idMap.get(ce.getBackendID());
             if (m != null)
             {
               m.remove(ce.getEntryID());
@@ -372,10 +372,10 @@
 
   /** {@inheritDoc} */
   @Override
-  public boolean putEntryIfAbsent(Entry entry, Backend backend, long entryID)
+  public boolean putEntryIfAbsent(Entry entry, String backendID, long entryID)
   {
     // Create the cache entry based on the provided information.
-    CacheEntry cacheEntry = new CacheEntry(entry, backend, entryID);
+    CacheEntry cacheEntry = new CacheEntry(entry, backendID, entryID);
 
 
     // Obtain a lock on the cache.  If this fails, then don't do anything.
@@ -420,7 +420,7 @@
           CacheEntry ce = iterator.next();
           iterator.remove();
 
-          Map<Long,CacheEntry> m = idMap.get(ce.getBackend());
+          Map<Long,CacheEntry> m = idMap.get(ce.getBackendID());
           if (m != null)
           {
             m.remove(ce.getEntryID());
@@ -433,12 +433,12 @@
         // present and add it if it isn't.
         dnMap.put(entry.getName(), cacheEntry);
 
-        Map<Long,CacheEntry> map = idMap.get(backend);
+        Map<Long,CacheEntry> map = idMap.get(backendID);
         if (map == null)
         {
           map = new HashMap<>();
           map.put(entryID, cacheEntry);
-          idMap.put(backend, map);
+          idMap.put(backendID, map);
         }
         else
         {
@@ -458,7 +458,7 @@
             CacheEntry ce = iterator.next();
             iterator.remove();
 
-            Map<Long,CacheEntry> m = idMap.get(ce.getBackend());
+            Map<Long,CacheEntry> m = idMap.get(ce.getBackendID());
             if (m != null)
             {
               m.remove(ce.getEntryID());
@@ -511,10 +511,10 @@
         return;
       }
 
-      Backend backend = entry.getBackend();
+      final String backendID = entry.getBackendID();
 
       // Try to remove the entry from the ID list as well.
-      Map<Long,CacheEntry> map = idMap.get(backend);
+      Map<Long,CacheEntry> map = idMap.get(backendID);
       if (map == null)
       {
         // This should't happen, but the entry isn't cached in the ID map so
@@ -527,7 +527,7 @@
       // If this backend becomes empty now remove it from the idMap map.
       if (map.isEmpty())
       {
-        idMap.remove(backend);
+        idMap.remove(backendID);
       }
     }
     catch (Exception e)
@@ -575,7 +575,7 @@
 
   /** {@inheritDoc} */
   @Override
-  public void clearBackend(Backend backend)
+  public void clearBackend(String backendID)
   {
     // Acquire a lock on the cache.  We should not return until the cache has
     // been cleared, so we will block until we can obtain the lock.
@@ -587,7 +587,7 @@
     try
     {
       // Remove all references to entries for this backend from the ID cache.
-      Map<Long,CacheEntry> map = idMap.remove(backend);
+      Map<Long,CacheEntry> map = idMap.remove(backendID);
       if (map == null)
       {
         // No entries were in the cache for this backend, so we can return
@@ -634,7 +634,7 @@
   {
     // Determine which backend should be used for the provided base DN.  If
     // there is none, then we don't need to do anything.
-    Backend backend = DirectoryServer.getBackend(baseDN);
+    Backend<?> backend = DirectoryServer.getBackend(baseDN);
     if (backend == null)
     {
       return;
@@ -673,11 +673,11 @@
    * @param  baseDN   The base DN below which all entries should be flushed.
    * @param  backend  The backend for which to remove the appropriate entries.
    */
-  private void clearSubtree(DN baseDN, Backend backend)
+  private void clearSubtree(DN baseDN, Backend<?> backend)
   {
     // See if there are any entries for the provided backend in the cache.  If
     // not, then return.
-    Map<Long,CacheEntry> map = idMap.get(backend);
+    Map<Long,CacheEntry> map = idMap.get(backend.getBackendID());
     if (map == null)
     {
       // No entries were in the cache for this backend, so we can return without
@@ -716,7 +716,7 @@
 
     // See if the backend has any subordinate backends.  If so, then process
     // them recursively.
-    for (Backend subBackend : backend.getSubordinateBackends())
+    for (Backend<?> subBackend : backend.getSubordinateBackends())
     {
       boolean isAppropriate = false;
       for (DN subBase : subBackend.getBaseDNs())
@@ -764,7 +764,7 @@
           CacheEntry entry = iterator.next();
           iterator.remove();
 
-          Map<Long,CacheEntry> m = idMap.get(entry.getBackend());
+          Map<Long,CacheEntry> m = idMap.get(entry.getBackendID());
           if (m != null)
           {
             m.remove(entry.getEntryID());
@@ -939,7 +939,7 @@
     StringBuilder sb = new StringBuilder();
 
     Map<DN,CacheEntry> dnMapCopy;
-    Map<Backend<?>, Map<Long, CacheEntry>> idMapCopy;
+    Map<String, Map<Long, CacheEntry>> idMapCopy;
 
     // Grab cache lock to prevent any modifications
     // to the cache maps until a snapshot is taken.
@@ -959,25 +959,23 @@
       final CacheEntry cacheEntry = dnMapCopy.get(dn);
       sb.append(dn);
       sb.append(":");
-      sb.append(cacheEntry != null ?
-          Long.toString(cacheEntry.getEntryID()) : null);
+      sb.append(cacheEntry != null ? Long.toString(cacheEntry.getEntryID()) : null);
       sb.append(":");
-      sb.append(cacheEntry != null ?
-          cacheEntry.getBackend().getBackendID() : null);
+      sb.append(cacheEntry != null ? cacheEntry.getBackendID() : null);
       sb.append(ServerConstants.EOL);
     }
 
     // See if there is anything on idMap that is not reflected on
     // dnMap in case maps went out of sync.
-    for (Backend<?> backend : idMapCopy.keySet()) {
-      for (Long id : idMapCopy.get(backend).keySet()) {
-        final CacheEntry cacheEntry = idMapCopy.get(backend).get(id);
+    for (String backendID : idMapCopy.keySet()) {
+      for (Map.Entry<Long, CacheEntry> entry : idMapCopy.get(backendID).entrySet()) {
+        final CacheEntry cacheEntry = entry.getValue();
         if (cacheEntry == null || !dnMapCopy.containsKey(cacheEntry.getDN())) {
           sb.append(cacheEntry != null ? cacheEntry.getDN() : null);
           sb.append(":");
-          sb.append(id);
+          sb.append(entry.getKey());
           sb.append(":");
-          sb.append(backend.getBackendID());
+          sb.append(backendID);
           sb.append(ServerConstants.EOL);
         }
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SoftReferenceEntryCache.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SoftReferenceEntryCache.java
index 1303a94..9df143e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SoftReferenceEntryCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SoftReferenceEntryCache.java
@@ -76,7 +76,7 @@
   private ConcurrentMap<DN, Reference<CacheEntry>> dnMap;
 
   /** The mapping between backend+ID and their corresponding entries. */
-  private ConcurrentMap<Backend, ConcurrentMap<Long, Reference<CacheEntry>>> idMap;
+  private ConcurrentMap<String, ConcurrentMap<Long, Reference<CacheEntry>>> idMap;
 
   /**
    * The reference queue that will be used to notify us whenever a soft
@@ -208,10 +208,10 @@
 
   /** {@inheritDoc} */
   @Override
-  public DN getEntryDN(Backend backend, long entryID)
+  public DN getEntryDN(String backendID, long entryID)
   {
     // Locate specific backend map and return the entry DN by ID.
-    ConcurrentMap<Long, Reference<CacheEntry>> backendMap = idMap.get(backend);
+    ConcurrentMap<Long, Reference<CacheEntry>> backendMap = idMap.get(backendID);
     if (backendMap != null) {
       Reference<CacheEntry> ref = backendMap.get(entryID);
       if (ref != null) {
@@ -226,10 +226,10 @@
 
   /** {@inheritDoc} */
   @Override
-  public void putEntry(Entry entry, Backend backend, long entryID)
+  public void putEntry(Entry entry, String backendID, long entryID)
   {
     // Create the cache entry based on the provided information.
-    CacheEntry cacheEntry = new CacheEntry(entry, backend, entryID);
+    CacheEntry cacheEntry = new CacheEntry(entry, backendID, entryID);
     Reference<CacheEntry> ref = new SoftReference<>(cacheEntry, referenceQueue);
 
     Reference<CacheEntry> oldRef = dnMap.put(entry.getName(), ref);
@@ -238,12 +238,12 @@
       oldRef.clear();
     }
 
-    ConcurrentMap<Long,Reference<CacheEntry>> map = idMap.get(backend);
+    ConcurrentMap<Long,Reference<CacheEntry>> map = idMap.get(backendID);
     if (map == null)
     {
       map = new ConcurrentHashMap<>();
       map.put(entryID, ref);
-      idMap.put(backend, map);
+      idMap.put(backendID, map);
     }
     else
     {
@@ -257,8 +257,7 @@
 
   /** {@inheritDoc} */
   @Override
-  public boolean putEntryIfAbsent(Entry entry, Backend backend,
-                                  long entryID)
+  public boolean putEntryIfAbsent(Entry entry, String backendID, long entryID)
   {
     // See if the entry already exists.  If so, then return false.
     if (dnMap.containsKey(entry.getName()))
@@ -268,17 +267,17 @@
 
 
     // Create the cache entry based on the provided information.
-    CacheEntry cacheEntry = new CacheEntry(entry, backend, entryID);
+    CacheEntry cacheEntry = new CacheEntry(entry, backendID, entryID);
     Reference<CacheEntry> ref = new SoftReference<>(cacheEntry, referenceQueue);
 
     dnMap.put(entry.getName(), ref);
 
-    ConcurrentMap<Long,Reference<CacheEntry>> map = idMap.get(backend);
+    ConcurrentMap<Long,Reference<CacheEntry>> map = idMap.get(backendID);
     if (map == null)
     {
       map = new ConcurrentHashMap<>();
       map.put(entryID, ref);
-      idMap.put(backend, map);
+      idMap.put(backendID, map);
     }
     else
     {
@@ -300,9 +299,9 @@
       CacheEntry cacheEntry = ref.get();
       if (cacheEntry != null)
       {
-        Backend<?> backend = cacheEntry.getBackend();
+        final String backendID = cacheEntry.getBackendID();
 
-        ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.get(backend);
+        ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.get(backendID);
         if (map != null)
         {
           ref = map.remove(cacheEntry.getEntryID());
@@ -314,7 +313,7 @@
           // it from the idMap map.
           if (map.isEmpty())
           {
-            idMap.remove(backend);
+            idMap.remove(backendID);
           }
         }
       }
@@ -331,15 +330,15 @@
 
   /** {@inheritDoc} */
   @Override
-  public void clearBackend(Backend backend)
+  public void clearBackend(String backendID)
   {
     // FIXME -- Would it be better just to dump everything?
-    ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.remove(backend);
+    final ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.remove(backendID);
     if (map != null)
     {
       for (Reference<CacheEntry> ref : map.values())
       {
-        CacheEntry cacheEntry = ref.get();
+        final CacheEntry cacheEntry = ref.get();
         if (cacheEntry != null)
         {
           dnMap.remove(cacheEntry.getDN());
@@ -364,7 +363,7 @@
     }
     else
     {
-      clearBackend(backend);
+      clearBackend(backend.getBackendID());
     }
   }
 
@@ -515,8 +514,8 @@
             {
               ref.clear();
 
-              Backend<?> backend = freedEntry.getBackend();
-              ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.get(backend);
+              final String backendID = freedEntry.getBackendID();
+              final ConcurrentMap<Long, Reference<CacheEntry>> map = idMap.get(backendID);
               if (map != null)
               {
                 ref = map.remove(freedEntry.getEntryID());
@@ -527,7 +526,7 @@
                 // If this backend becomes empty now remove
                 // it from the idMap map.
                 if (map.isEmpty()) {
-                  idMap.remove(backend);
+                  idMap.remove(backendID);
                 }
               }
             }
@@ -584,7 +583,7 @@
       sb.append(":");
       sb.append(ce.get().getEntryID());
       sb.append(":");
-      sb.append(ce.get().getBackend().getBackendID());
+      sb.append(ce.get().getBackendID());
       sb.append(ServerConstants.EOL);
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/CacheEntry.java b/opendj-server-legacy/src/main/java/org/opends/server/types/CacheEntry.java
index 7d86190..f846d47 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/CacheEntry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/CacheEntry.java
@@ -26,8 +26,6 @@
  */
 package org.opends.server.types;
 
-import org.opends.server.api.Backend;
-
 /**
  * This class defines a Directory Server cache entry, which is simply
  * used to store an entry with its associated backend and entry ID.
@@ -41,7 +39,7 @@
 public final class CacheEntry
 {
   /** The backend with which this cache entry is associated. */
-  private final Backend<?> backend;
+  private final String backendID;
 
   /** The entry itself. */
   private final Entry entry;
@@ -53,13 +51,13 @@
    * Creates a new cache entry with the provided information.
    *
    * @param  entry    The entry for this cache entry.
-   * @param  backend  The backend for this cache entry.
+   * @param  backendID  ID of the backend for this cache entry.
    * @param  entryID  The entry ID for this cache entry.
    */
-  public CacheEntry(Entry entry, Backend<?> backend, long entryID)
+  public CacheEntry(Entry entry, String backendID, long entryID)
   {
     this.entry   = entry;
-    this.backend = backend;
+    this.backendID = backendID;
     this.entryID = entryID;
   }
 
@@ -78,9 +76,9 @@
    *
    * @return  The backend for this cache entry.
    */
-  public Backend<?> getBackend()
+  public String getBackendID()
   {
-    return backend;
+    return backendID;
   }
 
   /**
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/CommonEntryCacheTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/CommonEntryCacheTestCase.java
index a115a0e..bf4d297 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/CommonEntryCacheTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/CommonEntryCacheTestCase.java
@@ -32,7 +32,6 @@
 
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.std.server.EntryCacheCfg;
-import org.opends.server.api.Backend;
 import org.opends.server.api.EntryCache;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
@@ -106,7 +105,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertFalse(cache.containsEntry(testEntriesList.get(0).getName()),
       "Not expected to find " + testEntriesList.get(0).getName() +
@@ -140,7 +139,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertNull(cache.getEntry(testEntriesList.get(0).getName()),
       "Not expected to find " + testEntriesList.get(0).getName() +
@@ -174,7 +173,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertNull(cache.getEntry(testEntriesList.get(0).getName()),
       "Not expected to find " + testEntriesList.get(0).getName() +
@@ -208,7 +207,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertNull(cache.getEntry(b, -1),
       "Not expected to find entry id " + -1 +
@@ -241,7 +240,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertEquals(cache.getEntryID(testEntriesList.get(0).getName()), -1,
       "Not expected to find " + testEntriesList.get(0).getName() +
@@ -274,7 +273,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     cache.putEntry(testEntriesList.get(0), b, 1);
 
@@ -307,7 +306,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     assertTrue(cache.putEntryIfAbsent(testEntriesList.get(0), b, 1),
       "Not expected to find " + testEntriesList.get(0).getName() +
@@ -348,7 +347,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     cache.removeEntry(testEntriesList.get(0).getName());
     cache.putEntry(testEntriesList.get(0), b, 1);
@@ -383,7 +382,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     cache.clear();
     cache.putEntry(testEntriesList.get(0), b, 1);
@@ -418,8 +417,8 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
-    Backend<?> c = DirectoryServer.getBackend(DN.valueOf("cn=config"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
+    String c = DirectoryServer.getBackend(DN.valueOf("cn=config")).getBackendID();
 
     cache.clearBackend(b);
     cache.putEntry(testEntriesList.get(0), b, 1);
@@ -428,7 +427,7 @@
 
     assertNull(cache.getEntry(b, 1),
       "Not expected to find entry id " + 1 + " on backend " +
-      b.getBackendID() + " in the cache.  Cache contents:" +
+      b + " in the cache.  Cache contents:" +
       ServerConstants.EOL + cache.toVerboseString());
 
     assertNull(cache.getEntry(testEntriesList.get(0).getName()),
@@ -438,7 +437,7 @@
 
     assertNotNull(cache.getEntry(c, 1),
       "Expected to find entry id " + 1 + " on backend " +
-      c.getBackendID() + " in the cache.  Cache contents:" +
+      c + " in the cache.  Cache contents:" +
       ServerConstants.EOL + cache.toVerboseString());
 
     // Clear the cache so that other tests can start from scratch.
@@ -460,8 +459,8 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
-    Backend<?> c = DirectoryServer.getBackend(DN.valueOf("cn=config"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
+    String c = DirectoryServer.getBackend(DN.valueOf("cn=config")).getBackendID();
 
     cache.putEntry(testEntriesList.get(0), b, 1);
     Entry testEntry = testEntriesList.get(1);
@@ -521,7 +520,7 @@
   public void testCacheConcurrency()
          throws Exception
   {
-    Backend<?> b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     for(int loops = 0; loops < CONCURRENCYLOOPS; loops++) {
       for(int i = 0; i < NUMTESTENTRIES; i++) {
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
index 5410d45..8d95fc4 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
@@ -32,12 +32,12 @@
 import java.util.ArrayList;
 import java.util.SortedMap;
 import java.util.TreeMap;
+
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.testng.annotations.BeforeClass;
 import org.opends.server.admin.std.meta.*;
 import org.opends.server.admin.std.server.EntryCacheCfg;
-import org.opends.server.api.Backend;
 import org.opends.server.api.EntryCache;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
@@ -47,6 +47,7 @@
 import org.testng.annotations.AfterGroups;
 import org.testng.annotations.BeforeGroups;
 import org.testng.annotations.Test;
+
 import static org.testng.Assert.*;
 
 
@@ -376,7 +377,7 @@
       cache.toVerboseString());
 
     TestCaseUtils.initializeTestBackend(false);
-    Backend b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     // Spread test entries among all cache levels via default cache.
     for (int i = 0; i < NUMTESTENTRIES; i++) {
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/FIFOEntryCacheTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/FIFOEntryCacheTestCase.java
index 3a79d87..7af783f 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/FIFOEntryCacheTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/FIFOEntryCacheTestCase.java
@@ -29,12 +29,12 @@
 
 
 import java.util.ArrayList;
+
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.testng.annotations.BeforeClass;
 import org.opends.server.admin.std.meta.*;
 import org.opends.server.admin.std.server.FIFOEntryCacheCfg;
-import org.opends.server.api.Backend;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
@@ -43,6 +43,7 @@
 import org.testng.annotations.AfterGroups;
 import org.testng.annotations.BeforeGroups;
 import org.testng.annotations.Test;
+
 import static org.testng.Assert.*;
 
 
@@ -266,7 +267,7 @@
       "Expected empty cache.  " + "Cache contents:" + ServerConstants.EOL +
       cache.toVerboseString());
 
-    Backend b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     for(int i = 0; i < super.NUMTESTENTRIES; i++ ) {
       super.cache.putEntry(super.testEntriesList.get(i), b, i);
@@ -336,7 +337,7 @@
       "Expected empty cache.  " + "Cache contents:" + ServerConstants.EOL +
       cache.toVerboseString());
 
-    Backend b = DirectoryServer.getBackend(DN.valueOf("o=test"));
+    String b = DirectoryServer.getBackend(DN.valueOf("o=test")).getBackendID();
 
     for(int i = 0; i < super.NUMTESTENTRIES; i++ ) {
       super.cache.putEntry(super.testEntriesList.get(i), b, i);

--
Gitblit v1.10.0