From d5e770962a3c79d68485d6bb5691cbdac4e741a8 Mon Sep 17 00:00:00 2001
From: Chris Ridd <chris.ridd@forgerock.com>
Date: Mon, 30 Jun 2014 09:34:41 +0000
Subject: [PATCH] Backport fix for OPENDJ-1508: Allow "=" in malformed attribute options

---
 opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/ASCIICharProp.java         |    6 ++++--
 opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java |   10 ++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/ASCIICharProp.java b/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/ASCIICharProp.java
index cb5b6df..1f2472c 100644
--- a/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/ASCIICharProp.java
+++ b/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/util/ASCIICharProp.java
@@ -164,7 +164,7 @@
             this.isDigit = false;
             this.isLetter = false;
             this.isKeyChar = c == '-';
-            this.isCompatKeyChar = (c == '-') || (c == '.') || (c == '_');
+            this.isCompatKeyChar = (c == '-') || (c == '.') || (c == '_') || (c == '=');
             this.isHexChar = false;
             this.hexValue = -1;
             this.decimalValue = -1;
@@ -255,8 +255,10 @@
      * will be permitted:
      *
      * <pre>
-     * USCORE  = %x5F ; underscore ("_")
+     * HYPHEN  = %x2D ; hyphen ("-")
      * DOT     = %x2E ; period (".")
+     * EQUALS  = %x3D ; equals sign ("=")
+     * USCORE  = %x5F ; underscore ("_")
      * </pre>
      *
      * @param allowCompatChars
diff --git a/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java b/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
index 04545bb..7b6914b 100644
--- a/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
+++ b/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
@@ -106,6 +106,16 @@
                 false  // is compat key char
             },
             {
+                '=',
+                false, // uppercase
+                -1,    // hex
+                -1,    // decimal
+                false, // is letter
+                false, // is digit
+                false, // is key char
+                true  // is compat key char
+            },
+            {
                 'a',
                 false, // uppercase
                 10,    // hex

--
Gitblit v1.10.0