From a5131f44a6afa554af8f4c82c7ffd3d4ceac1bd4 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 04 Feb 2011 12:50:58 +0000
Subject: [PATCH] OPEN - issue OPENDJ-26: Fix OpenDS issue 4585: ConcurrentModificationException in ReplicationBroker https://bugster.forgerock.org/jira/browse/OPENDJ-26
---
opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java | 39 +++++++++++----------------------------
1 files changed, 11 insertions(+), 28 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java b/opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
index e301b53..597a6d3 100644
--- a/opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
+++ b/opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2011 ForgeRock AS
*/
package org.opends.server.replication.service;
@@ -51,26 +52,21 @@
private static final DebugTracer TRACER = getTracer();
/**
- * For test purposes only to simulate loss of heartbeats.
- */
- static private boolean heartbeatsDisabled = false;
-
- /**
* The session on which heartbeats are to be sent.
*/
- private ProtocolSession session;
+ private final ProtocolSession session;
/**
* The time in milliseconds between heartbeats.
*/
- private long heartbeatInterval;
- private int serverId;
+ private final long heartbeatInterval;
+ private final int serverId;
/**
* Set this to stop the thread.
*/
- private Boolean shutdown = false;
- private final Object shutdown_lock = new Object();
+ private volatile boolean shutdown = false;
+ private final Object shutdownLock = new Object();
/**
* Create a heartbeat thread.
@@ -112,10 +108,7 @@
if (now > session.getLastPublishTime() + heartbeatInterval)
{
- if (!heartbeatsDisabled)
- {
- session.publish(ctHeartbeatMsg);
- }
+ session.publish(ctHeartbeatMsg);
}
try
@@ -127,11 +120,11 @@
sleepTime = heartbeatInterval;
}
- synchronized (shutdown_lock)
+ synchronized (shutdownLock)
{
if (!shutdown)
{
- shutdown_lock.wait(sleepTime);
+ shutdownLock.wait(sleepTime);
}
}
}
@@ -166,20 +159,10 @@
*/
public void shutdown()
{
- synchronized (shutdown_lock)
+ synchronized (shutdownLock)
{
shutdown = true;
- shutdown_lock.notifyAll();
+ shutdownLock.notifyAll();
}
}
-
-
- /**
- * For testing purposes only to simulate loss of heartbeats.
- * @param heartbeatsDisabled Set true to prevent heartbeats from being sent.
- */
- public static void setHeartbeatsDisabled(boolean heartbeatsDisabled)
- {
- CTHeartbeatPublisherThread.heartbeatsDisabled = heartbeatsDisabled;
- }
}
--
Gitblit v1.10.0