From 218b2a22d685fef5602021786334a4d78a2460e2 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 25 Jun 2010 09:40:08 +0000
Subject: [PATCH] Resolves an issue in Import due to entries with multiple RDNs. This patch changes the key format used by the DN2ID database. Rebuilding the index is required.

---
 opends/src/server/org/opends/server/backends/jeb/VerifyJob.java |   30 +++++++-----------------------
 1 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
index bc97f5b..28f70ea 100644
--- a/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.backends.jeb;
 import org.opends.messages.Message;
@@ -575,24 +575,6 @@
       {
         keyCount++;
 
-        DN dn;
-        try
-        {
-          dn = DN.decode(ByteString.wrap(key.getData()));
-        }
-        catch (DirectoryException e)
-        {
-          errorCount++;
-          if (debugEnabled())
-          {
-            TRACER.debugCaught(DebugLogLevel.ERROR, e);
-
-            TRACER.debugError("File dn2id has malformed key %s.%n",
-                       StaticUtils.bytesToHex(key.getData()));
-          }
-          continue;
-        }
-
         EntryID entryID;
         try
         {
@@ -606,7 +588,7 @@
             TRACER.debugCaught(DebugLogLevel.ERROR, e);
 
             TRACER.debugError("File dn2id has malformed ID for DN <%s>:%n%s%n",
-                       dn.toNormalizedString(),
+                       new String(key.getData()),
                        StaticUtils.bytesToHex(data.getData()));
           }
           continue;
@@ -633,18 +615,20 @@
           if (debugEnabled())
           {
             TRACER.debugError("File dn2id has DN <%s> referencing unknown " +
-                "ID %d%n", dn.toNormalizedString(), entryID.longValue());
+                "ID %d%n", new String(key.getData()), entryID.longValue());
           }
         }
         else
         {
-          if (!entry.getDN().equals(dn))
+          if (!Arrays.equals(JebFormat.dnToDNKey(
+              entry.getDN(), verifyConfig.getBaseDN().getNumComponents()),
+                             key.getData()))
           {
             errorCount++;
             if (debugEnabled())
             {
               TRACER.debugError("File dn2id has DN <%s> referencing entry " +
-                  "with wrong DN <%s>%n", dn.toNormalizedString(),
+                  "with wrong DN <%s>%n", new String(key.getData()),
                                           entry.getDN().toNormalizedString());
             }
           }

--
Gitblit v1.10.0