From f41aa6089856f956e2941ebd75e9e0a2ad8dcec5 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 05 Jan 2015 15:56:59 +0000
Subject: [PATCH] Importer.java: In addDN() and isDNMatched(), changed DatabaseEntry parameters type into byte[].

---
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java |   33 +++++++++++++--------------------
 1 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index d13ac3a..76edc64 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -4308,9 +4308,9 @@
           {
             throw new JebException(LocalizableMessage.raw("Search DN cache failed."));
           }
-          if (!isDNMatched(dns, dnBytesForValue))
+          if (!isDNMatched(dns.getData(), dnBytesForValue))
           {
-            addDN(dns, cursor, dnBytesForValue);
+            addDN(dns.getData(), cursor, dnBytesForValue);
             return true;
           }
           return false;
@@ -4324,16 +4324,13 @@
     }
 
     /** Add the DN to the DNs as because of a hash collision. */
-    private void addDN(DatabaseEntry val, Cursor cursor, byte[] dnBytesForValue)
-        throws JebException
+    private void addDN(byte[] readDnBytes, Cursor cursor, byte[] dnBytesForValue) throws JebException
     {
-      byte[] bytes = val.getData();
       int pLen = PackedInteger.getWriteIntLength(dnBytesForValue.length);
-      int totLen = bytes.length + pLen + dnBytesForValue.length;
+      int totLen = readDnBytes.length + pLen + dnBytesForValue.length;
       byte[] newRec = new byte[totLen];
-      System.arraycopy(bytes, 0, newRec, 0, bytes.length);
-      int pos = bytes.length;
-      pos = PackedInteger.writeInt(newRec, pos, dnBytesForValue.length);
+      System.arraycopy(readDnBytes, 0, newRec, 0, readDnBytes.length);
+      int pos = PackedInteger.writeInt(newRec, readDnBytes.length, dnBytesForValue.length);
       System.arraycopy(dnBytesForValue, 0, newRec, pos, dnBytesForValue.length);
       DatabaseEntry newVal = new DatabaseEntry(newRec);
       OperationStatus status = cursor.putCurrent(newVal);
@@ -4343,19 +4340,15 @@
       }
     }
 
-    /**
-     * Return true if the specified DN is in the DNs saved as a result of hash collisions.
-     */
-    private boolean isDNMatched(DatabaseEntry dns, byte[] dnBytes)
+    /** Return true if the specified DN is in the DNs saved as a result of hash collisions. */
+    private boolean isDNMatched(byte[] readDnBytes, byte[] dnBytes)
     {
       int pos = 0;
-      byte[] bytes = dns.getData();
-      while (pos < dns.getData().length)
+      while (pos < readDnBytes.length)
       {
-        int pLen = PackedInteger.getReadIntLength(bytes, pos);
-        int len = PackedInteger.readInt(bytes, pos);
-        if (indexComparator.compare(bytes, pos + pLen, len, dnBytes,
-            dnBytes.length) == 0)
+        int pLen = PackedInteger.getReadIntLength(readDnBytes, pos);
+        int len = PackedInteger.readInt(readDnBytes, pos);
+        if (indexComparator.compare(readDnBytes, pos + pLen, len, dnBytes, dnBytes.length) == 0)
         {
           return true;
         }
@@ -4385,7 +4378,7 @@
         DatabaseEntry dns = new DatabaseEntry();
         OperationStatus status = cursor.getSearchKey(key, dns, LockMode.DEFAULT);
         byte[] dnBytesForValue = StaticUtils.getBytes(dn.toString());
-        return status == OperationStatus.SUCCESS && isDNMatched(dns, dnBytesForValue);
+        return status == OperationStatus.SUCCESS && isDNMatched(dns.getData(), dnBytesForValue);
       }
       finally
       {

--
Gitblit v1.10.0