From 05dfa5fee15b191c3ee1afae0010b70733b1a35b Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 25 Jun 2007 15:51:57 +0000
Subject: [PATCH] Update the pre-parse and pre-operation plugin results to add the ability to skip core processing without skipping post-operation plugins.  Also, make sure that post-response plugins are always invoked for all operations that get far enough in their processing to have called the pre-parse plugins.

---
 opends/src/server/org/opends/server/core/ModifyDNOperation.java |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/ModifyDNOperation.java b/opends/src/server/org/opends/server/core/ModifyDNOperation.java
index 8eebd8a..22f41ef 100644
--- a/opends/src/server/org/opends/server/core/ModifyDNOperation.java
+++ b/opends/src/server/org/opends/server/core/ModifyDNOperation.java
@@ -781,6 +781,7 @@
 
         logModifyDNRequest(this);
         logModifyDNResponse(this);
+        pluginConfigManager.invokePostResponseModifyDNPlugins(this);
         return;
       }
       else if (preParseResult.sendResponseImmediately())
@@ -789,6 +790,11 @@
         logModifyDNRequest(this);
         break modifyDNProcessing;
       }
+      else if (preParseResult.skipCoreProcessing())
+      {
+        skipPostOperation = false;
+        break modifyDNProcessing;
+      }
 
 
       // Log the modify DN request message.
@@ -801,6 +807,7 @@
         indicateCancelled(cancelRequest);
         processingStopTime = System.currentTimeMillis();
         logModifyDNResponse(this);
+        pluginConfigManager.invokePostResponseModifyDNPlugins(this);
         return;
       }
 
@@ -936,6 +943,7 @@
         indicateCancelled(cancelRequest);
         processingStopTime = System.currentTimeMillis();
         logModifyDNResponse(this);
+        pluginConfigManager.invokePostResponseModifyDNPlugins(this);
         return;
       }
 
@@ -1019,6 +1027,7 @@
           indicateCancelled(cancelRequest);
           processingStopTime = System.currentTimeMillis();
           logModifyDNResponse(this);
+          pluginConfigManager.invokePostResponseModifyDNPlugins(this);
           return;
         }
 
@@ -1564,6 +1573,7 @@
           indicateCancelled(cancelRequest);
           processingStopTime = System.currentTimeMillis();
           logModifyDNResponse(this);
+          pluginConfigManager.invokePostResponseModifyDNPlugins(this);
           return;
         }
 
@@ -1591,6 +1601,7 @@
 
             processingStopTime = System.currentTimeMillis();
             logModifyDNResponse(this);
+            pluginConfigManager.invokePostResponseModifyDNPlugins(this);
             return;
           }
           else if (preOpResult.sendResponseImmediately())
@@ -1598,6 +1609,11 @@
             skipPostOperation = true;
             break modifyDNProcessing;
           }
+          else if (preOpResult.skipCoreProcessing())
+          {
+            skipPostOperation = false;
+            break modifyDNProcessing;
+          }
         }
 
 
@@ -1784,6 +1800,7 @@
           indicateCancelled(cancelRequest);
           processingStopTime = System.currentTimeMillis();
           logModifyDNResponse(this);
+          pluginConfigManager.invokePostResponseModifyDNPlugins(this);
           return;
         }
 
@@ -2063,6 +2080,7 @@
 
         processingStopTime = System.currentTimeMillis();
         logModifyDNResponse(this);
+        pluginConfigManager.invokePostResponseModifyDNPlugins(this);
         return;
       }
     }

--
Gitblit v1.10.0