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/LocalBackendDeleteOperation.java |   39 +++++++++++++++++++--------------------
 1 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index f521d26..b76a2d9 100644
--- a/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -473,29 +473,28 @@
       }
       finally
       {
-        LockManager.unlock(entryDN, entryLock);
-      }
-    }
-
-
-    for (SynchronizationProvider provider :
-        DirectoryServer.getSynchronizationProviders())
-    {
-      try
-      {
-        provider.doPostOperation(this);
-      }
-      catch (DirectoryException de)
-      {
-        if (debugEnabled())
+        for (SynchronizationProvider provider :
+          DirectoryServer.getSynchronizationProviders())
         {
-          TRACER.debugCaught(DebugLogLevel.ERROR, de);
+          try
+          {
+            provider.doPostOperation(this);
+          }
+          catch (DirectoryException de)
+          {
+            if (debugEnabled())
+            {
+              TRACER.debugCaught(DebugLogLevel.ERROR, de);
+            }
+
+            logError(ERR_DELETE_SYNCH_POSTOP_FAILED.get(getConnectionID(),
+                getOperationID(), getExceptionMessage(de)));
+            setResponseData(de);
+            break;
+          }
         }
 
-        logError(ERR_DELETE_SYNCH_POSTOP_FAILED.get(getConnectionID(),
-            getOperationID(), getExceptionMessage(de)));
-        setResponseData(de);
-        break;
+        LockManager.unlock(entryDN, entryLock);
       }
     }
 

--
Gitblit v1.10.0