From a1393c28fbaa1385f5a14aa7810034a729bae074 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Thu, 16 Apr 2015 17:00:49 +0000
Subject: [PATCH] OPENDJ-1941 CR-6639 dsconfig: impossible to edit a persistit backend configuration
---
opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
index f1a333b..97d581d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
@@ -784,9 +784,18 @@
/** {@inheritDoc} */
@Override
- public boolean isConfigurationChangeAcceptable(PersistitBackendCfg cfg, List<LocalizableMessage> unacceptableReasons)
+ public boolean isConfigurationChangeAcceptable(PersistitBackendCfg newCfg,
+ List<LocalizableMessage> unacceptableReasons)
{
- return checkConfigurationDirectories(cfg, unacceptableReasons);
+ long newSize = computeSize(newCfg);
+ long oldSize = computeSize(config);
+ return (newSize <= oldSize || memQuota.isMemoryAvailable(newSize - oldSize))
+ && checkConfigurationDirectories(newCfg, unacceptableReasons);
+ }
+
+ private long computeSize(PersistitBackendCfg cfg)
+ {
+ return cfg.getDBCacheSize() > 0 ? cfg.getDBCacheSize() : memQuota.memPercentToBytes(cfg.getDBCachePercent());
}
/**
--
Gitblit v1.10.0