From b03b09d3f95870b445d078ecbc80588e0508ce57 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 06 May 2015 16:08:46 +0000
Subject: [PATCH] Code cleanup

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java |   46 +++++++++++++++++++++++++---------------------
 1 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
index bb18508..a003477 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -260,7 +260,7 @@
    * @param rebuildConfig
    *          The rebuild index configuration.
    * @param cfg
-   *          The local DB back-end configuration.
+   *          The backend configuration.
    * @throws InitializationException
    *           If a problem occurs during initialization.
    * @throws StorageRuntimeException
@@ -292,7 +292,7 @@
    * @param importCfg
    *          The LDIF import configuration.
    * @param backendCfg
-   *          The local DB back-end configuration.
+   *          The backend configuration.
    * @throws InitializationException
    *           If a problem occurs during initialization.
    * @throws ConfigException
@@ -1396,7 +1396,7 @@
 
       if (oldEntry == null)
       {
-        if (validateDNs && !dnSanityCheck(txn, entryDN, entry, suffix))
+        if (validateDNs && !dnSanityCheck(txn, entry, suffix))
         {
           suffix.removePending(entryDN);
           return;
@@ -1521,7 +1521,7 @@
         throws DirectoryException, StorageRuntimeException, InterruptedException
     {
       DN entryDN = entry.getName();
-      if (validateDNs && !dnSanityCheck(txn, entryDN, entry, suffix))
+      if (validateDNs && !dnSanityCheck(txn, entry, suffix))
       {
         suffix.removePending(entryDN);
         return;
@@ -1535,30 +1535,23 @@
       importCount.getAndIncrement();
     }
 
-    /** Examine the DN for duplicates and missing parents. */
-    boolean dnSanityCheck(WriteableTransaction txn, DN entryDN, Entry entry, Suffix suffix)
+    /**
+     * Examine the DN for duplicates and missing parents.
+     *
+     * @return true if the import operation can proceed with the provided entry, false otherwise
+     */
+    boolean dnSanityCheck(WriteableTransaction txn, Entry entry, Suffix suffix)
         throws StorageRuntimeException, InterruptedException
     {
       //Perform parent checking.
+      DN entryDN = entry.getName();
       DN parentDN = suffix.getEntryContainer().getParentWithinBase(entryDN);
       if (parentDN != null && !suffix.isParentProcessed(txn, parentDN, dnCache, clearedBackend))
       {
         reader.rejectEntry(entry, ERR_IMPORT_PARENT_NOT_FOUND.get(parentDN));
         return false;
       }
-      //If the backend was not cleared, then the dn2id needs to checked first
-      //for DNs that might not exist in the DN cache. If the DN is not in
-      //the suffixes dn2id DB, then the dn cache is used.
-      if (!clearedBackend)
-      {
-        EntryID id = suffix.getDN2ID().get(txn, entryDN);
-        if (id != null || !dnCache.insert(entryDN))
-        {
-          reader.rejectEntry(entry, WARN_IMPORT_ENTRY_EXISTS.get());
-          return false;
-        }
-      }
-      else if (!dnCache.insert(entryDN))
+      if (!insert(txn, entryDN, suffix, dnCache))
       {
         reader.rejectEntry(entry, WARN_IMPORT_ENTRY_EXISTS.get());
         return false;
@@ -1566,6 +1559,17 @@
       return true;
     }
 
+    private boolean insert(WriteableTransaction txn, DN entryDN, Suffix suffix, DNCache dnCache)
+    {
+      //If the backend was not cleared, then first check dn2id
+      //for DNs that might not exist in the DN cache.
+      if (!clearedBackend && suffix.getDN2ID().get(txn, entryDN) != null)
+      {
+        return false;
+      }
+      return dnCache.insert(entryDN);
+    }
+
     void processIndexes(Suffix suffix, Entry entry, EntryID entryID) throws StorageRuntimeException,
         InterruptedException
     {
@@ -2659,7 +2663,7 @@
 
     /** Rebuild index configuration. */
     private final RebuildConfig rebuildConfig;
-    /** Local DB backend configuration. */
+    /** Backend configuration. */
     private final PluggableBackendCfg cfg;
 
     /** Map of index keys to indexes. */
@@ -3748,6 +3752,7 @@
             }));
           }
         });
+        return updateResult.get();
       }
       catch (StorageRuntimeException e)
       {
@@ -3757,7 +3762,6 @@
       {
         throw new StorageRuntimeException(e);
       }
-      return updateResult.get();
     }
 
     /** Return true if the specified DN is in the DNs saved as a result of hash collisions. */

--
Gitblit v1.10.0