From 764833f650b491bd0496a739f212d85238b8c769 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 11 Dec 2013 17:03:10 +0000
Subject: [PATCH] Fix OPENDJ-1249 - ConnectionFactory timeout setting is applied for Active Directory persistent search requests.

---
 opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java |    7 +++++++
 opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPSearchFutureResultImpl.java              |    6 +++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPSearchFutureResultImpl.java b/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPSearchFutureResultImpl.java
index 39f2022..851584a 100644
--- a/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPSearchFutureResultImpl.java
+++ b/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPSearchFutureResultImpl.java
@@ -27,6 +27,8 @@
 
 package com.forgerock.opendj.ldap;
 
+import static org.forgerock.opendj.ldap.controls.PersistentSearchRequestControl.ACTIVE_DIRECTORY_OID;
+
 import org.forgerock.opendj.ldap.Connection;
 import org.forgerock.opendj.ldap.IntermediateResponseHandler;
 import org.forgerock.opendj.ldap.ResultCode;
@@ -54,7 +56,9 @@
         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(ACTIVE_DIRECTORY_OID);
     }
 
     public boolean handleEntry(final SearchResultEntry entry) {
diff --git a/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java b/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java
index 396d971..c0b13b4 100644
--- a/opendj-ldap-sdk/src/main/java/org/forgerock/opendj/ldap/controls/PersistentSearchRequestControl.java
+++ b/opendj-ldap-sdk/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.
      */

--
Gitblit v1.10.0