From d0082246b9d667fb620c5d4b9c7d8e5ad01e1d81 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Sat, 19 Sep 2026 12:46:32 +0000
Subject: [PATCH] [#1036] Assert that a parked change is handed out, not which thread hands it out (#1037)

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index f68df24..6ec3909 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -2897,8 +2897,8 @@
            * listed, uncommitted and unowned, so the request is what brings them back, and
            * this thread is the one there to run it (issue #954). A give-back which threw
            * before it released anything left the parked changes as they were, owned by this
-           * thread and handed out by getNextUpdate() to whichever thread clears what they
-           * wait for: nothing here can do better for those.
+           * thread and handed out by getNextUpdate() to whichever thread calls it first once
+           * what they wait for is gone: nothing here can do better for those.
            *
            * Not run on a domain whose session has an owner, the way no road of a failed
            * replay runs it there: the restart is refused where it runs and the request
@@ -4168,7 +4168,8 @@
    * <p>
    * A parked change is handed out again by {@code getNextUpdate()} alone, which every
    * replay loop of this domain runs once it is done with a change: a parked change is
-   * replayed by whichever thread clears the change it was waiting for. A thread whose
+   * replayed by whichever thread calls it first once the change it was waiting for is
+   * gone - the thread which cleared it, as a rule. A thread whose
    * replay was unwound is not on that road anymore - it takes the next delivery off the
    * replay queue - so a change it parked would be left owned by a thread which is not
    * coming back to it, while every redelivery of it is refused as a duplicate. On a domain

--
Gitblit v1.10.0