From 342bb6a815b6bda5bea024a3e24947ad039d854a Mon Sep 17 00:00:00 2001
From: fdorson <fdorson@localhost>
Date: Thu, 05 Jun 2008 14:09:14 +0000
Subject: [PATCH] Fix for issue #3274 OutOfMemoryError on a master. PendingChange instances are not released.

---
 opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 59f7c83..f4b3069 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -717,6 +717,27 @@
       }
       finally
       {
+        for (SynchronizationProvider provider :
+          DirectoryServer.getSynchronizationProviders())
+        {
+          try
+          {
+            provider.doPostOperation(this);
+          }
+          catch (DirectoryException de)
+          {
+            if (debugEnabled())
+            {
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
+            }
+
+            logError(ERR_ADD_SYNCH_POSTOP_FAILED.get(getConnectionID(),
+                getOperationID(), getExceptionMessage(de)));
+            setResponseData(de);
+            break;
+          }
+        }
+
         if (entryLock != null)
         {
           LockManager.unlock(entryDN, entryLock);
@@ -729,27 +750,6 @@
       }
     }
 
-    for (SynchronizationProvider provider :
-        DirectoryServer.getSynchronizationProviders())
-    {
-      try
-      {
-        provider.doPostOperation(this);
-      }
-      catch (DirectoryException de)
-      {
-        if (debugEnabled())
-        {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
-        }
-
-        logError(ERR_ADD_SYNCH_POSTOP_FAILED.get(getConnectionID(),
-            getOperationID(), getExceptionMessage(de)));
-        setResponseData(de);
-        break;
-      }
-    }
-
     // Invoke the post-operation or post-synchronization add plugins.
     if (isSynchronizationOperation())
     {

--
Gitblit v1.10.0