From 36e213444660f0a74ed415adeab490a5f3d50a6f Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Fri, 09 Oct 2015 11:40:06 +0000
Subject: [PATCH] OPENDJ-1791 Implement a tool like dbtest for the pluggable backend
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DnKeyFormat.java | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DnKeyFormat.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DnKeyFormat.java
index 9ee3fb5..5fa29b9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DnKeyFormat.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DnKeyFormat.java
@@ -26,6 +26,8 @@
*/
package org.opends.server.backends.pluggable;
+import static org.forgerock.opendj.ldap.DN.normalizedToASCII;
+
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ByteStringBuilder;
@@ -58,7 +60,7 @@
// and find the first unescaped NORMALIZED_RDN_SEPARATOR
for (int i = dnKey.length() - 1; i >= 0; i--)
{
- if (dnKey.byteAt(i) == DN.NORMALIZED_RDN_SEPARATOR && i - 1 >= 0 && dnKey.byteAt(i - 1) != DN.NORMALIZED_ESC_BYTE)
+ if (positionIsRDNSeparator(dnKey, i))
{
return i;
}
@@ -86,6 +88,22 @@
return builder.toByteString();
}
+ /**
+ * Returns a best effort conversion from key to a human readable DN.
+ * @param key the index key
+ * @return a best effort conversion from key to a human readable DN.
+ */
+ static String keyToDNString(ByteString key)
+ {
+ return normalizedToASCII(key);
+ }
+
+ private static boolean positionIsRDNSeparator(ByteSequence key, int index)
+ {
+ return index > 0
+ && key.byteAt(index) == DN.NORMALIZED_RDN_SEPARATOR && key.byteAt(index - 1) != DN.NORMALIZED_ESC_BYTE;
+ }
+
static ByteStringBuilder beforeKey(final ByteSequence key)
{
final ByteStringBuilder beforeKey = new ByteStringBuilder(key.length() + 1);
--
Gitblit v1.10.0