From 459b0d746ffd89bdf8fcd47fa3a14e76be87136f Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 25 Sep 2007 01:54:38 +0000
Subject: [PATCH] Further split up the local backend modify operation to allow it to be better optimized, and do the same for SearchFilter.matchesEntryInternal and Entry.conformsToSchema.

---
 opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
index 206ac65..b69914b 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
@@ -152,7 +152,7 @@
 
 
     // Check for a request to cancel this operation.
-    if (getCancelRequest() != null)
+    if (cancelIfRequested())
     {
       return;
     }
@@ -185,7 +185,7 @@
 
 
       // Check for a request to cancel this operation.
-      if (getCancelRequest() != null)
+      if (cancelIfRequested())
       {
         return;
       }
@@ -302,7 +302,7 @@
         }
 
         // Check for a request to cancel this operation.
-        if (getCancelRequest() != null)
+        if (cancelIfRequested())
         {
           return;
         }
@@ -415,7 +415,7 @@
 
 
     // Check for a request to cancel this operation.
-    if (getCancelRequest() != null)
+    if (cancelIfRequested())
     {
       return;
     }
@@ -438,6 +438,27 @@
 
 
   /**
+   * Checks to determine whether there has been a request to cancel this
+   * operation.  If so, then set the cancel result and processing stop time.
+   *
+   * @return  {@code true} if there was a cancel request, or {@code false} if
+   *          not.
+   */
+  private boolean cancelIfRequested()
+  {
+    if (getCancelRequest() == null)
+    {
+      return false;
+    }
+
+    indicateCancelled(getCancelRequest());
+    setProcessingStopTime();
+    return true;
+  }
+
+
+
+  /**
    * Performs any processing required for the controls included in the request.
    *
    * @throws  DirectoryException  If a problem occurs that should prevent the

--
Gitblit v1.10.0