From 6d35a7b4fd83e9c5c917f29967c956c8750a43e3 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 22 Nov 2013 12:26:06 +0000
Subject: [PATCH] Found and fixed a new deadlock with read vs. write locks.
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
index 8203e8a..2a9da68 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
@@ -614,14 +614,12 @@
}
catch (ChangelogException e)
{
- // Unlocking is required before throwing any exception
- closeAndReleaseReadLock(localCursor);
+ StaticUtils.close(localCursor);
throw e;
}
catch (DatabaseException e)
{
- // Unlocking is required before throwing any exception
- closeAndReleaseReadLock(localCursor);
+ StaticUtils.close(localCursor);
throw new ChangelogException(e);
}
finally
@@ -666,13 +664,13 @@
}
catch (ChangelogException e)
{
- closeAndReleaseReadLock(localCursor);
+ StaticUtils.close(localCursor);
abort(localTxn);
throw e;
}
catch (Exception e)
{
- closeAndReleaseReadLock(localCursor);
+ StaticUtils.close(localCursor);
abort(localTxn);
throw new ChangelogException(e);
}
--
Gitblit v1.10.0