From 89c803ce85e8a88d54544bfe35f24c9be34758a3 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Thu, 18 Sep 2008 06:40:07 +0000
Subject: [PATCH] Fix for issue 3477 : OpenDS runs out of synchronization or crashes
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/MsgQueue.java | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MsgQueue.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MsgQueue.java
index d8b7295..3484633 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MsgQueue.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MsgQueue.java
@@ -42,6 +42,9 @@
private SortedMap<ChangeNumber, UpdateMessage> map =
new TreeMap<ChangeNumber, UpdateMessage>();
+ // The total number of bytes for all the message in the queue.
+ private int bytesCount = 0;
+
/**
* Return the first UpdateMessage in the MsgQueue.
*
@@ -67,12 +70,22 @@
*
* @return The number of elements in this MsgQueue.
*/
- public int size()
+ public int count()
{
return map.size();
}
/**
+ * Returns the number of bytes in this MsgQueue.
+ *
+ * @return The number of bytes in this MsgQueue.
+ */
+ public int bytesCount()
+ {
+ return bytesCount;
+ }
+
+ /**
* Returns <tt>true</tt> if this MsgQueue contains no UpdateMessage.
*
* @return <tt>true</tt> if this MsgQueue contains no UpdateMessage.
@@ -91,6 +104,7 @@
public void add(UpdateMessage update)
{
map.put(update.getChangeNumber(), update);
+ bytesCount += update.size();
}
/**
@@ -102,6 +116,7 @@
{
UpdateMessage msg = map.get(map.firstKey());
map.remove(msg.getChangeNumber());
+ bytesCount -= msg.size();
return msg;
}
@@ -126,5 +141,6 @@
public void clear()
{
map.clear();
+ bytesCount = 0;
}
}
--
Gitblit v1.10.0