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/Storage.java | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java
index 179c073..cf04069 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/Storage.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;
@@ -56,8 +57,10 @@
void open(AccessMode accessMode) throws Exception;
/**
- * Executes a read operation. In case of a read operation rollback, implementations must ensure
- * the read operation is retried until it succeeds.
+ * Executes a read operation. In case of a read operation rollback, implementations must propagate the failure
+ * to the caller rather than replay the operation: unlike {@link WriteOperation}, a {@link ReadOperation} is not
+ * required to be idempotent, and several of them are not - they write to a stream, print, or accumulate state
+ * that a second attempt would double.
*
* @param <T>
* type of the value returned
--
Gitblit v1.10.0