From db3336e30e64052504fdc8f89914b97e4baa1ebb Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 12 Dec 2013 17:06:42 +0000
Subject: [PATCH] Fix OPENDJ-1249: ConnectionFactory timeout setting is applied for Active Directory persistent search requests

---
 opendj-core/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java |    7 +++++++
 opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LDAPSearchFutureResultImpl.java          |    3 ++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java
index bdb6dad..6f30c07 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java
@@ -106,6 +106,13 @@
     public static final String OID = "2.16.840.1.113730.3.4.3";
 
     /**
+     * The OID for the Microsoft Active Directory persistent search request
+     * control. The control itself is empty and the changes are returned in the
+     * following attributes "isDeleted", "whenChanged", "whenCreated".
+     */
+    public static final String ACTIVE_DIRECTORY_OID = "1.2.840.113556.1.4.528";
+
+    /**
      * A decoder which can be used for decoding the persistent search request
      * control.
      */
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LDAPSearchFutureResultImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LDAPSearchFutureResultImpl.java
index 31828d8..216ed6c 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LDAPSearchFutureResultImpl.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LDAPSearchFutureResultImpl.java
@@ -69,7 +69,8 @@
         super(requestID, resultHandler, intermediateResponseHandler, connection);
         this.request = request;
         this.searchResultHandler = resultHandler;
-        this.isPersistentSearch = request.containsControl(PersistentSearchRequestControl.OID);
+        this.isPersistentSearch = request.containsControl(PersistentSearchRequestControl.OID)
+                || request.containsControl(PersistentSearchRequestControl.ACTIVE_DIRECTORY_OID);
     }
 
     /** {@inheritDoc} */

--
Gitblit v1.10.0