From c4a9e74ee31f4e9cb00fd2bca69eee3e8853d72b Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Wed, 08 Apr 2009 15:46:12 +0000
Subject: [PATCH] Fix for issue 2070: Added validation of DB cache size before applying it to JE.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
index 9987ab2..1af255b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/ConfigurableEnvironment.java
@@ -27,6 +27,7 @@
package org.opends.server.backends.jeb;
import com.sleepycat.je.EnvironmentConfig;
+import com.sleepycat.je.dbi.MemoryBudget;
import org.opends.server.config.ConfigConstants;
import org.opends.server.config.ConfigException;
@@ -43,6 +44,7 @@
import java.util.Arrays;
import org.opends.messages.Message;
+import static org.opends.messages.JebMessages.*;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.admin.std.server.LocalDBBackendCfg;
@@ -426,6 +428,21 @@
public static EnvironmentConfig parseConfigEntry(LocalDBBackendCfg cfg)
throws ConfigException
{
+ // See if the db cache size setting is valid.
+ if(cfg.getDBCacheSize() != 0)
+ {
+ if (MemoryBudget.getRuntimeMaxMemory() < cfg.getDBCacheSize()) {
+ throw new ConfigException(
+ ERR_CONFIG_JEB_CACHE_SIZE_GREATER_THAN_JVM_HEAP.get(
+ cfg.getDBCacheSize(), MemoryBudget.getRuntimeMaxMemory()));
+ }
+ if (cfg.getDBCacheSize() < MemoryBudget.MIN_MAX_MEMORY_SIZE) {
+ throw new ConfigException(
+ ERR_CONFIG_JEB_CACHE_SIZE_TOO_SMALL.get(
+ cfg.getDBCacheSize(), MemoryBudget.MIN_MAX_MEMORY_SIZE));
+ }
+ }
+
EnvironmentConfig envConfig = defaultConfig();
// Handle the attributes that do not have a JE property.
@@ -445,13 +462,7 @@
// See if there are any native JE properties specified in the config
// and if so try to parse, evaluate and set them.
SortedSet<String> jeProperties = cfg.getJEProperty();
- try {
- envConfig = setJEProperties(envConfig, jeProperties, attrMap);
- } catch (ConfigException e) {
- throw e;
- }
-
- return envConfig;
+ return setJEProperties(envConfig, jeProperties, attrMap);
}
--
Gitblit v1.10.0