From 366f4d0fdb60facc557fa4517d60b431ccf40d6e Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 29 Jul 2009 14:24:30 +0000
Subject: [PATCH] Fix for issue 4151 (Default java heap not enough to launch import)
---
opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java | 50 ++++++++++++++++++++++++++++++--------------------
1 files changed, 30 insertions(+), 20 deletions(-)
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
index a0b90c8..fbdabb1 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
@@ -102,6 +102,10 @@
private static final String INITIAL_CLIENT_HEAP_ARG = "-Xms8m";
+ private static final String SERVER_HEAP_ARGS = "-Xms128m -Xmx256m";
+
+ private static final long SERVER_MAX_HEAP_BYTES = 256 * 1024 * 1024;
+
/**
* Invokes the method ConfigureDS.configMain with the provided parameters.
* @param args the arguments to be passed to ConfigureDS.configMain.
@@ -926,10 +930,17 @@
boolean supportsClient = supportsClient(javaHome, installPath);
boolean supportsServer = supportsServer(javaHome, installPath);
-
- boolean supportsClientInitialHeap = supportsInitialHeap(javaHome,
- installPath);
-
+ boolean supportsClientInitialHeap =
+ supportsOption(INITIAL_CLIENT_HEAP_ARG, javaHome, installPath);
+ boolean supportsServerInitialHeap = false;
+ // If the current max memory is bigger than the max heap we want to set,
+ // assume that the JVM ergonomics are going to be able to allocate enough
+ // memory.
+ if (Runtime.getRuntime().maxMemory() < SERVER_MAX_HEAP_BYTES)
+ {
+ supportsServerInitialHeap =
+ supportsOption(SERVER_HEAP_ARGS, javaHome, installPath);
+ }
// Scripts to which we will pass -client argument
String[] clientScripts =
{
@@ -950,12 +961,25 @@
"upgrade", "verify-index", "dbtest"
};
- if (supportsServer)
+ if (supportsServer || supportsServerInitialHeap)
{
for (int i=0; i<serverScripts.length; i++)
{
writer.newLine();
- writer.write(serverScripts[i]+".java-args=-server");
+ String arg = "";
+ if (supportsServer)
+ {
+ arg = "-server";
+ }
+ if (supportsServerInitialHeap)
+ {
+ if (arg.length() > 0)
+ {
+ arg += " ";
+ }
+ arg += SERVER_HEAP_ARGS;
+ }
+ writer.write(serverScripts[i]+".java-args="+arg);
}
}
else
@@ -967,7 +991,6 @@
}
}
-
if (supportsClient || supportsClientInitialHeap)
{
for (int i=0; i<clientScripts.length; i++)
@@ -1085,19 +1108,6 @@
}
/**
- * Tells whether the provided java installation supports the server option
- * or not.
- * @param javaHome the java installation path.
- * @param installPath the install path of the server.
- * @return <CODE>true</CODE> if the provided java installation supports the
- * server option and <CODE>false</CODE> otherwise.
- */
- private boolean supportsInitialHeap(String javaHome, String installPath)
- {
- return supportsOption(INITIAL_CLIENT_HEAP_ARG, javaHome, installPath);
- }
-
- /**
* Tells whether the provided java installation supports the client option
* or not.
* @param javaHome the java installation path.
--
Gitblit v1.10.0