From 655132fb059cfa70fb338d54f1bb0fb48198fb0f Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Wed, 02 Sep 2026 06:44:10 +0000
Subject: [PATCH] [#873] Give each backend its own compressed schema trees (#881)

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
index cc9b870..4db4d9f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
@@ -428,6 +428,21 @@
     }
 
     @Override
+    public boolean treeExists(TreeName treeName)
+    {
+      // Deliberately not getOrOpenTree(): dbConfig() sets allowCreate, so asking the tree itself
+      // would create the very database whose absence is being tested.
+      try
+      {
+        return env.getDatabaseNames().contains(toDatabaseName(treeName));
+      }
+      catch (DatabaseException e)
+      {
+        throw new StorageRuntimeException(e);
+      }
+    }
+
+    @Override
     public Cursor<ByteString, ByteString> openCursor(final TreeName treeName)
     {
       try
@@ -551,6 +566,12 @@
     }
 
     @Override
+    public boolean treeExists(TreeName treeName)
+    {
+      return delegate.treeExists(treeName);
+    }
+
+    @Override
     public void openTree(TreeName treeName, boolean createOnDemand)
     {
       if (createOnDemand)
@@ -638,6 +659,13 @@
     {
       return 0;
     }
+
+    @Override
+    public boolean treeExists(TreeName treeName)
+    {
+      // No environment was ever opened, so nothing is stored.
+      return false;
+    }
   }
 
   private WriteableTransaction newWriteableTransaction(Transaction txn)

--
Gitblit v1.10.0