From 5adf347d468c93b593cf48883eacfa94ee8b2839 Mon Sep 17 00:00:00 2001
From: Chris Ridd <chris.ridd@forgerock.com>
Date: Mon, 12 Oct 2015 15:47:07 +0000
Subject: [PATCH] OPENDJ-2339 Avoid double escaping RDN values
---
opendj-core/src/test/java/org/forgerock/opendj/ldap/RDNTestCase.java | 14 +++++++++++++-
opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java | 14 +++++++++++++-
opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java | 3 +++
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/RDNTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/RDNTestCase.java
index 04d6eae..6c5d75d 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldap/RDNTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/RDNTestCase.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2010 Sun Microsystems, Inc.
- * Portions copyright 2011 ForgeRock AS.
+ * Portions copyright 2011-2015 ForgeRock AS.
*/
package org.forgerock.opendj.ldap;
@@ -417,6 +417,18 @@
}
/**
+ * Test escaping of single space values.
+ *
+ * @throws Exception
+ * If the test failed unexpectedly.
+ */
+ @Test
+ public void testEscaping() {
+ RDN rdn = new RDN(ATTR_TYPE_DC, ByteString.valueOf(" "));
+ assertEquals(rdn.toString(), "dc=\\ ");
+ }
+
+ /**
* Test RDN hashCode
*
* @param first
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java b/opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java
index 1313941..3dd47b1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/RDN.java
@@ -497,6 +497,9 @@
if (c == ' ' || c == '#') {
buffer.append('\\');
buffer.append(c);
+ if (length == 1) {
+ return buffer.toString();
+ }
start = 1;
}
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java b/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
index af99e20..4356c6a 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
@@ -55,7 +55,6 @@
private ByteString AV_CN;
-
/**
* Set up the environment for performing the tests in this suite.
*
@@ -182,6 +181,19 @@
/**
+ * Test escaping of single space values.
+ *
+ * @throws Exception If the test failed unexpectedly.
+ */
+ @Test
+ public void testEscaping() {
+ RDN rdn = new RDN(AT_DC, ByteString.valueOf(" "));
+ assertEquals(rdn.toString(), "dc=\\ ");
+ }
+
+
+
+ /**
* RDN test data provider.
*
* @return The array of test RDN strings.
--
Gitblit v1.10.0