From d4ba1923c8724f8865f75261fccc0134021e05a7 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.
---
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
index 8203e8a..2a9da68 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
+++ b/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