From 6ee1440f6f56ac066f97383315b2798287f0821a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 23 Mar 2011 22:27:01 +0000
Subject: [PATCH] Fix issue OpenDJ-95: Socket leak and constant disconnect/reconnect when a directory server can no longer reach its connected replication server
---
opends/src/server/org/opends/server/replication/server/ReplicationDB.java | 36 ++++++++----------------------------
1 files changed, 8 insertions(+), 28 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDB.java b/opends/src/server/org/opends/server/replication/server/ReplicationDB.java
index 8c5ffb3..7330fac 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDB.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationDB.java
@@ -252,12 +252,17 @@
}
catch (LockConflictException e)
{
- if (txn != null)
- txn.abort();
- txn = null;
+ // Try again.
}
finally
{
+ if (txn != null)
+ {
+ // No effect if txn has committed.
+ txn.abort();
+ txn = null;
+ }
+
dbCloseLock.readLock().unlock();
}
}
@@ -268,10 +273,6 @@
MessageBuilder mb = new MessageBuilder();
mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
logError(mb.toMessage());
- if (txn != null)
- {
- txn.abort();
- }
replicationServer.shutdown();
}
}
@@ -281,16 +282,6 @@
mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
mb.append(stackTraceToSingleLineString(e));
logError(mb.toMessage());
- if (txn != null)
- {
- try
- {
- txn.abort();
- } catch (DatabaseException e1)
- {
- // can't do much more. The ReplicationServer is shuting down.
- }
- }
replicationServer.shutdown();
}
catch (UnsupportedEncodingException e)
@@ -300,17 +291,6 @@
mb.append(stackTraceToSingleLineString(e));
logError(mb.toMessage());
replicationServer.shutdown();
- if (txn != null)
- {
- try
- {
- txn.abort();
- } catch (DatabaseException e1)
- {
- // can't do much more. The ReplicationServer is shuting down.
- }
- }
- replicationServer.shutdown();
}
}
--
Gitblit v1.10.0