From d0deb0709fc73a94d3d46ac76753933383861b00 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 10 Sep 2026 11:56:42 +0000
Subject: [PATCH] [#901] Make the replay retry budget of a replication domain configurable (#944)

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/RemotePendingChanges.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/RemotePendingChanges.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/RemotePendingChanges.java
index 4eef2d8..1d54c51 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/RemotePendingChanges.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/RemotePendingChanges.java
@@ -393,6 +393,30 @@
   }
 
   /**
+   * Returns how many of the listed changes have a failed replay recorded against them.
+   * <p>
+   * A change is counted from its first failed replay until it leaves this map, whether it
+   * leaves it applied or given up on. It is what tells that the replay of this domain is
+   * stuck: a domain whose {@code replay-give-up-delay} is unlimited never gives up, so it
+   * never counts a failed change either, and the changes it keeps asking for are only
+   * visible here.
+   *
+   * @return the number of listed changes with a failed replay recorded against them
+   */
+  public int getFailingChangesSize()
+  {
+    pendingChangesReadLock.lock();
+    try
+    {
+      return failingChanges;
+    }
+    finally
+    {
+      pendingChangesReadLock.unlock();
+    }
+  }
+
+  /**
    * Forgets every change listed here, without updating the ServerState.
    * <p>
    * Called when the domain is disabled: its ServerState is saved and cleared from

--
Gitblit v1.10.0