From 6bc38c0e7fad827dc83dedf4ddc0ebed1b4a9095 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 22 Sep 2014 13:37:54 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1206 : Create a new ReplicationBackend/ChangelogBackend   to support cn=changelog CR-4052

---
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
index 822a04e..4a206b1 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
@@ -504,18 +504,19 @@
         }
 
         // NYI -- Add support for additional controls.
-
-        else if (c.isCritical())
+        else if (c.isCritical() && !backendSupportsControl(oid))
         {
-          if ((backend == null) || (! backend.supportsControl(oid)))
-          {
-            throw new DirectoryException(
-                           ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
-                           ERR_SEARCH_UNSUPPORTED_CRITICAL_CONTROL.get(oid));
-          }
+          throw new DirectoryException(
+              ResultCode.UNAVAILABLE_CRITICAL_EXTENSION,
+              ERR_SEARCH_UNSUPPORTED_CRITICAL_CONTROL.get(oid));
         }
       }
     }
   }
-}
 
+  /** Indicates if the backend supports the control corresponding to provided oid. */
+  private boolean backendSupportsControl(final String oid)
+  {
+    return backend != null && backend.supportsControl(oid);
+  }
+}
\ No newline at end of file

--
Gitblit v1.10.0