From f0a287fcba94440f81845a04fd0b6a4a70075a2c Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Mon, 19 Oct 2026 08:28:51 +0000
Subject: [PATCH] [#1195] Publish every change done while a recovery runs, and end the recovery only once they are out (#1204)

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/LDAPUpdateMsg.java |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/LDAPUpdateMsg.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/LDAPUpdateMsg.java
index d2c30a5..c6a6585 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/LDAPUpdateMsg.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/LDAPUpdateMsg.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2009 Sun Microsystems, Inc.
  * Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.replication.protocol;
 
@@ -202,6 +203,20 @@
     bytes = getBytes(ProtocolVersion.getCurrentVersion());
   }
 
+  /**
+   * Has this message published as one no acknowledgement is waited for: it is no longer assured,
+   * and is encoded again. A recovery publishes the local changes it kept so, as it publishes the
+   * changes it rebuilds from the historical information: an operation which still waits for the
+   * acknowledgement of one gets none, and times out.
+   *
+   * This method is not synchronized and therefore not MT safe.
+   */
+  public void setNotAssured()
+  {
+    setAssured(false);
+    bytes = null;
+  }
+
   /** {@inheritDoc} */
   @Override
   public ByteArrayBuilder encodeHeader(byte msgType, short protocolVersion)

--
Gitblit v1.10.0