From 4ee9f7e5b2a8ae82e1969b0fc6e29d96c2994a11 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 13 Nov 2008 19:22:03 +0000
Subject: [PATCH] This change relates to issue 3567.

---
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index d7eee43..96809e7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -1287,10 +1287,14 @@
       {
         if (ps.getMessageID() == messageID)
         {
+          // We only need to find the first persistent search
+          // associated with the provided message ID. The persistent
+          // search will ensure that all other related persistent
+          // searches are cancelled.
           CancelResult cancelResult = ps.cancel();
 
           if (keepStats && (cancelResult.getResultCode() ==
-              ResultCode.CANCELED))
+            ResultCode.CANCELED))
           {
             statTracker.updateAbandonedOperation();
           }
@@ -1428,6 +1432,11 @@
 
         for (PersistentSearch persistentSearch : getPersistentSearches())
         {
+          if (persistentSearch.getMessageID() == messageID)
+          {
+            continue;
+          }
+
           persistentSearch.cancel();
           lastCompletionTime.set(TimeThread.getTime());
         }

--
Gitblit v1.10.0