From d6a5316c7055055f2da0310748dc5a46dc777144 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Wed, 19 Aug 2026 08:37:49 +0000
Subject: [PATCH] [#870] Stop replaying a rolled back read in the PersistIt backend (#871)

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/ReadOperation.java |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/ReadOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/ReadOperation.java
index 5f2e58b..891eeb1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/ReadOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/ReadOperation.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2014-2015 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.backends.pluggable.spi;
 
@@ -26,6 +27,10 @@
 {
   /**
    * Executes a read operation, and returns the read value.
+   * <p>
+   * Implementations need not be idempotent: unlike {@link WriteOperation}, a read operation is never replayed by
+   * {@link Storage#read(ReadOperation)}, so it is free to print, to write to a stream, or to accumulate state
+   * outside of the transaction.
    *
    * @param txn
    *          the read transaction where to execute the read operation

--
Gitblit v1.10.0