From 218b40d6e175f5b58b89ff7e0b3050577d3aff2f Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 10 Nov 2008 13:41:49 +0000
Subject: [PATCH] This change fixes issue 3567:

---
 opends/src/server/org/opends/server/core/ModifyOperationBasis.java |   68 ++--------------------------------
 1 files changed, 4 insertions(+), 64 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/ModifyOperationBasis.java b/opends/src/server/org/opends/server/core/ModifyOperationBasis.java
index 8ab08ce..43474bd 100644
--- a/opends/src/server/org/opends/server/core/ModifyOperationBasis.java
+++ b/opends/src/server/org/opends/server/core/ModifyOperationBasis.java
@@ -27,9 +27,6 @@
 package org.opends.server.core;
 
 import org.opends.messages.MessageBuilder;
-import org.opends.messages.Message;
-
-
 import static org.opends.server.core.CoreConstants.LOG_ELEMENT_ENTRY_DN;
 import static org.opends.server.core.CoreConstants.LOG_ELEMENT_ERROR_MESSAGE;
 import static org.opends.server.core.CoreConstants.LOG_ELEMENT_MATCHED_DN;
@@ -38,11 +35,8 @@
 import static org.opends.server.core.CoreConstants.LOG_ELEMENT_RESULT_CODE;
 import static org.opends.server.loggers.AccessLogger.logModifyRequest;
 import static org.opends.server.loggers.AccessLogger.logModifyResponse;
-import static org.opends.server.loggers.ErrorLogger.logError;
 import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.messages.CoreMessages.*;
-import static org.opends.server.util.StaticUtils.getExceptionMessage;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -554,9 +548,10 @@
       // Log the modify response.
       logModifyResponse(this);
 
-      // Notifies any persistent searches that might be registered with the
-      // server.
-      notifyPersistentSearches(workflowExecuted);
+      // Invoke the post-response callbacks.
+      if (workflowExecuted) {
+        invokePostResponseCallbacks();
+      }
 
       // Invoke the post-response add plugins.
       invokePostResponsePlugins(workflowExecuted);
@@ -612,61 +607,6 @@
   }
 
 
-  /**
-   * Notifies any persistent searches that might be registered with the server.
-   * If no workflow has been executed then don't notify persistent searches.
-   *
-   * @param workflowExecuted <code>true</code> if a workflow has been
-   *                         executed
-   */
-  private void notifyPersistentSearches(boolean workflowExecuted)
-  {
-    if (! workflowExecuted)
-    {
-      return;
-    }
-
-    List localOperations =
-      (List)getAttachment(Operation.LOCALBACKENDOPERATIONS);
-
-    if (localOperations != null)
-    {
-      for (Object localOp : localOperations)
-      {
-        LocalBackendModifyOperation localOperation =
-          (LocalBackendModifyOperation)localOp;
-        // Notify any persistent searches that might be registered with
-        // the server.
-        if (localOperation.getResultCode() == ResultCode.SUCCESS)
-        {
-          for (PersistentSearch persistentSearch :
-               DirectoryServer.getPersistentSearches())
-          {
-            try
-            {
-              persistentSearch.processModify(localOperation,
-                  localOperation.getCurrentEntry(),
-                  localOperation.getModifiedEntry());
-            }
-            catch (Exception e)
-            {
-              if (debugEnabled())
-              {
-                TRACER.debugCaught(DebugLogLevel.ERROR, e);
-              }
-
-              Message message = ERR_MODIFY_ERROR_NOTIFYING_PERSISTENT_SEARCH.
-                  get(String.valueOf(persistentSearch), getExceptionMessage(e));
-              logError(message);
-
-              DirectoryServer.deregisterPersistentSearch(persistentSearch);
-            }
-          }
-        }
-      }
-    }
-  }
-
 
   /**
    * Updates the error message and the result code of the operation.

--
Gitblit v1.10.0