From 2f8ddecb5c2234bb90f6879100656cbfa6c1f5fe Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 11 Dec 2014 13:32:43 +0000
Subject: [PATCH] Code cleanup.

---
 opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java                |    5 ++---
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java |    4 ++--
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java         |    6 +++---
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java      |   33 ++++++++++++++++++++++-----------
 4 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
index 3497fe8..3b709e9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
@@ -46,6 +46,7 @@
 import static com.sleepycat.je.OperationStatus.*;
 
 import static org.opends.messages.JebMessages.*;
+import static org.opends.server.backends.jeb.JebFormat.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -621,12 +622,11 @@
           }
 
           // We have found a subordinate referral.
-          DN dn = JebFormat.dnFromDNKey(key.getData(), 0, key.getSize(),
-                                        entryContainer.getBaseDN());
+          DN dn = dnFromDNKey(key.getData(), entryContainer.getBaseDN());
 
           // Make sure the referral is within scope.
           if (searchOp.getScope() == SearchScope.SINGLE_LEVEL
-              && JebFormat.findDNKeyParent(key.getData(), 0, key.getSize()) != baseDN.length)
+              && findDNKeyParent(key.getData()) != baseDN.length)
           {
             continue;
           }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
index a04a358..d574c1e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -1160,7 +1160,7 @@
           boolean isInScope =
               searchScope != SearchScope.SINGLE_LEVEL
                   // Check if this entry is an immediate child.
-                  || findDNKeyParent(key.getData(), 0, key.getSize()) == baseDNKey.length;
+                  || findDNKeyParent(key.getData()) == baseDNKey.length;
           if (isInScope)
           {
             // Process the candidate entry.
@@ -1678,7 +1678,7 @@
             {
               LocalizableMessage message =
                       ERR_JEB_DELETE_ABORTED_BY_SUBORDINATE_PLUGIN.get(
-                      dnFromDNKey(key.getData(), 0, 0, getBaseDN()));
+                      dnFromDNKey(key.getData(), getBaseDN()));
               throw new DirectoryException(
                   DirectoryServer.getServerErrorResultCode(), message);
             }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
index fabaa25..a0a0d4b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JebFormat.java
@@ -257,34 +257,31 @@
    * Decode a DN value from its database key representation.
    *
    * @param dnKey The database key value of the DN.
-   * @param offset Starting position in the database key data.
-   * @param length The length of the database key data.
-   * @param prefix The DN to prefix the deocded DN value.
+   * @param prefix The DN to prefix the decoded DN value.
    * @return The decoded DN value.
    * @throws DirectoryException if an error occurs while decoding the DN value.
    * @see #dnToDNKey(DN, int)
    */
-  public static DN dnFromDNKey(byte[] dnKey, int offset, int length, DN prefix)
+  public static DN dnFromDNKey(byte[] dnKey, DN prefix)
       throws DirectoryException
   {
     DN dn = prefix;
-    int start = offset;
     boolean escaped = false;
     ByteStringBuilder buffer = new ByteStringBuilder();
-    for(int i = start; i < length; i++)
+    for (byte b : dnKey)
     {
-      if(dnKey[i] == 0x5C)
+      if (b == 0x5C)
       {
         escaped = true;
         continue;
       }
-      else if(!escaped && dnKey[i] == 0x01)
+      else if (!escaped && b == 0x01)
       {
         buffer.append(0x01);
         escaped = false;
         continue;
       }
-      else if(!escaped && dnKey[i] == 0x00)
+      else if (!escaped && b == 0x00)
       {
         if(buffer.length() > 0)
         {
@@ -299,7 +296,7 @@
           buffer.append(0x5C);
           escaped = false;
         }
-        buffer.append(dnKey[i]);
+        buffer.append(b);
       }
     }
 
@@ -311,6 +308,20 @@
     return dn;
   }
 
+
+  /**
+   * Find the length of bytes that represents the superior DN of the given
+   * DN key. The superior DN is represented by the initial bytes of the DN key.
+   *
+   * @param dnKey The database key value of the DN.
+   * @return The length of the superior DN or -1 if the given dn is the
+   *         root DN or 0 if the superior DN is removed.
+   */
+  public static int findDNKeyParent(byte[] dnKey)
+  {
+    return findDNKeyParent(dnKey, 0, dnKey.length);
+  }
+
   /**
    * Find the length of bytes that represents the superior DN of the given
    * DN key. The superior DN is represented by the initial bytes of the DN key.
@@ -347,7 +358,7 @@
    * @param prefixRDNs The number of prefix RDNs to remove from the encoded
    *                   representation.
    * @return A DatabaseEntry containing the key.
-   * @see #dnFromDNKey(byte[], int, int, DN)
+   * @see #dnFromDNKey(byte[], DN)
    */
   public static byte[] dnToDNKey(DN dn, int prefixRDNs)
   {
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
index 4a7c575..bda0581 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
@@ -74,6 +74,7 @@
 import static com.forgerock.opendj.cli.Utils.*;
 
 import static org.opends.messages.ToolMessages.*;
+import static org.opends.server.backends.jeb.JebFormat.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -1252,9 +1253,7 @@
               {
                 try
                 {
-                  formatedKey = JebFormat.dnFromDNKey(
-                      key.getData(), 0, key.getSize(), ec.getBaseDN()).
-                      toNormalizedString();
+                  formatedKey = dnFromDNKey(key.getData(), ec.getBaseDN()).toNormalizedString();
                   keyLabel = INFO_LABEL_DBTEST_ENTRY_DN.get();
                 }
                 catch(Exception e)

--
Gitblit v1.10.0