From 6b1e3bf06de1327d05b8cbefcd930e5974f556d3 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 04 Apr 2011 22:33:36 +0000
Subject: [PATCH] OpenDJ-107: Potential for leaking DB cursors in replication databases

---
 opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java b/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
index a5049b7..cb34f92 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
@@ -32,6 +32,8 @@
 import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
 import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import org.opends.server.loggers.debug.DebugTracer;
+import org.opends.server.types.DebugLogLevel;
+
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
 
@@ -131,9 +133,9 @@
    */
   private void start() throws DatabaseException, ReplicationDBException
   {
-    Cursor cursor = stateDb.openCursor(null, null);
     DatabaseEntry key = new DatabaseEntry();
     DatabaseEntry data = new DatabaseEntry();
+    Cursor cursor = stateDb.openCursor(null, null);
 
     try
     {
@@ -259,7 +261,14 @@
     }
     finally
     {
-      cursor.close();
+      try
+      {
+        cursor.close();
+      }
+      catch (Exception ignored)
+      {
+        TRACER.debugCaught(DebugLogLevel.ERROR, ignored);
+      }
     }
   }
 

--
Gitblit v1.10.0