From ba29b0f8216baba3c804a2a8336384dab389c286 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Fri, 12 Jun 2015 14:35:23 +0000
Subject: [PATCH] OPENDJ-2135: verify-index: IndexOutOfBoundsException

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
index 777513a..433acb0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java
@@ -190,14 +190,19 @@
       return false;
     }
     // Immediate children should only have one RDN separator past the parent length
-    for (int i = child.length(); i >= parent.length(); i--)
+    int nbSeparator = 0;
+    for (int i = parent.length() ; i < child.length(); i++)
     {
-      if (child.byteAt(i) == DN.NORMALIZED_RDN_SEPARATOR && i != parent.length())
+      if (child.byteAt(i) == DN.NORMALIZED_RDN_SEPARATOR)
       {
-        return false;
+        nbSeparator++;
+        if (nbSeparator > 1)
+        {
+          return false;
+        }
       }
     }
-    return true;
+    return (nbSeparator == 1);
   }
 
   /**

--
Gitblit v1.10.0