From 4e6d62dafebc5513ce006ec3e18ebcc1db51e95d Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 10 Jul 2015 13:49:47 +0000
Subject: [PATCH] IndexBuffer.java: Augmented javadoc with a comment from CR-7560

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexBuffer.java |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexBuffer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexBuffer.java
index 467f2f5..15fc2ad 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexBuffer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexBuffer.java
@@ -36,6 +36,7 @@
 
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
+import org.opends.server.backends.pluggable.spi.TreeName;
 import org.opends.server.backends.pluggable.spi.WriteableTransaction;
 import org.opends.server.types.DirectoryException;
 
@@ -53,10 +54,18 @@
   /**
    * The buffered records stored as a map from the record key to the
    * buffered value for that key for each index.
+   * <p>
+   * The map is sorted by {@link TreeName}s to establish a deterministic iteration order (see {@link AbstractTree}).
+   * This prevents potential deadlock for db having pessimistic lock strategy (e.g.: JE).
    */
   private final SortedMap<Index, SortedMap<ByteString, BufferedIndexValues>> bufferedIndexes = new TreeMap<>();
 
-  /** The buffered records stored as a set of buffered VLV values for each index. */
+  /**
+   * The buffered records stored as a set of buffered VLV values for each index.
+   * <p>
+   * The map is sorted by {@link TreeName}s to establish a deterministic iteration order (see {@link AbstractTree}).
+   * This prevents potential deadlock for db having pessimistic lock strategy (e.g.: JE).
+   */
   private final SortedMap<VLVIndex, BufferedVLVIndexValues> bufferedVLVIndexes = new TreeMap<>();
 
   /**

--
Gitblit v1.10.0