From b8a4d35f03b7fa5cf0d80a9424224f6ddeb3b3f9 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Mon, 19 Oct 2026 08:52:10 +0000
Subject: [PATCH] [#1206] Take a late handler of a replication server back to its queue only once its consumer has every change the queue lacks (#1219)
---
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java
index 0839b7c..61d8233 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/Log.java
@@ -12,6 +12,7 @@
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package org.opends.server.replication.server.changelog.file;
@@ -411,10 +412,12 @@
*
* @param record
* The record to add.
+ * @return {@code true} if the record was appended, {@code false} if it was not: its key is not
+ * higher than the key of the last record added, or this log is closed
* @throws ChangelogException
* If an error occurs while adding the record to the log.
*/
- public void append(final Record<K, V> record) throws ChangelogException
+ public boolean append(final Record<K, V> record) throws ChangelogException
{
// Fast-path - assume that no rotation is needed and use shared lock.
sharedLock.lock();
@@ -422,13 +425,12 @@
{
if (isClosed)
{
- return;
+ return false;
}
LogFile<K, V> headLogFile = getHeadLogFile();
if (!mustRotate(headLogFile))
{
- headLogFile.append(record);
- return;
+ return headLogFile.append(record);
}
}
finally
@@ -442,13 +444,13 @@
{
if (isClosed)
{
- return;
+ return false;
}
LogFile<K, V> headLogFile = getHeadLogFile();
if (headLogFile.appendWouldBreakKeyOrdering(record))
{
// abort rotation
- return;
+ return false;
}
if (mustRotate(headLogFile))
{
@@ -457,7 +459,7 @@
rotateHeadLogFile();
headLogFile = getHeadLogFile();
}
- headLogFile.append(record);
+ return headLogFile.append(record);
}
finally
{
--
Gitblit v1.10.0