From 86a13a070a5adbc1d52dbf0943318dc01a3ee62e Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 18 Dec 2006 22:01:00 +0000
Subject: [PATCH] Update the LDAP connection handler and LDAP client connection to properly update the abandon operation count when appropriate.  Also, update a number of test cases to verify that the LDAPStatistics information is properly updated.

---
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 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 c8c22af..147535a 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
@@ -1312,7 +1312,15 @@
       {
         if (ps.getSearchOperation().getMessageID() == messageID)
         {
-          return ps.getSearchOperation().cancel(cancelRequest);
+          CancelResult cancelResult =
+               ps.getSearchOperation().cancel(cancelRequest);
+
+          if (keepStats && (cancelResult == CancelResult.CANCELED))
+          {
+            statTracker.updateAbandonedOperation();
+          }
+
+          return cancelResult;
         }
       }
 
@@ -1320,6 +1328,12 @@
     }
     else
     {
+      CancelResult cancelResult = op.cancel(cancelRequest);
+      if (keepStats && (cancelResult == CancelResult.CANCELED))
+      {
+        statTracker.updateAbandonedOperation();
+      }
+
       return op.cancel(cancelRequest);
     }
   }
@@ -1347,7 +1361,11 @@
       {
         try
         {
-          o.cancel(cancelRequest);
+          CancelResult cancelResult = o.cancel(cancelRequest);
+          if (keepStats && (cancelResult == CancelResult.CANCELED))
+          {
+            statTracker.updateAbandonedOperation();
+          }
         }
         catch (Exception e)
         {
@@ -1408,7 +1426,11 @@
         {
           try
           {
-            o.cancel(cancelRequest);
+            CancelResult cancelResult = o.cancel(cancelRequest);
+            if (keepStats && (cancelResult == CancelResult.CANCELED))
+            {
+              statTracker.updateAbandonedOperation();
+            }
           }
           catch (Exception e)
           {
@@ -1848,6 +1870,10 @@
                               protocolOp.getIDToAbandon());
 
     abandonOp.run();
+    if (keepStats && (abandonOp.getResultCode() == ResultCode.CANCELED))
+    {
+      statTracker.updateAbandonedOperation();
+    }
 
     return connectionValid;
   }

--
Gitblit v1.10.0