From c759f3ef343bcccde8030f33ff6481ce86d2d0e7 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Thu, 30 Jul 2009 02:33:21 +0000
Subject: [PATCH] Fix import memory calculation to use maxMemory()

---
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index a94c543..1c4040c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -192,7 +192,9 @@
       dbCacheSize =  MIN_DB_CACHE_SIZE;
       if(bufferSize < MIN_BUFFER_SIZE)
       {
-        System.out.println("Log size less than default -- give it a try");
+        Message msg =
+               NOTE_JEB_IMPORT_LDIF_BUFF_SIZE_LESS_DEFAULT.get(MIN_BUFFER_SIZE);
+        logError(msg);
         bufferSize = MIN_BUFFER_SIZE;
       }
       else
@@ -244,7 +246,10 @@
     Message msg;
     Runtime runtime = Runtime.getRuntime();
     long freeMemory = runtime.freeMemory();
-    long availMemImport = (freeMemory * MEM_PCT_PHASE_1) / 100;
+    long maxMemory = runtime.maxMemory();
+    long totMemory = runtime.totalMemory();
+    long totFreeMemory = (freeMemory + (maxMemory - totMemory));
+    long availMemImport = (totFreeMemory * MEM_PCT_PHASE_1) / 100;
     int phaseOneBuffers = 2 * (indexCount * threadCount);
     msg = NOTE_JEB_IMPORT_LDIF_TOT_MEM_BUF.get(availMemImport, phaseOneBuffers);
     logError(msg);
@@ -463,7 +468,11 @@
   private int cacheSizeFromFreeMemory()
   {
     Runtime runtime = Runtime.getRuntime();
-    long availMemory = runtime.freeMemory()  * MEM_PCT_PHASE_2 / 100;
+    long freeMemory = runtime.freeMemory();
+    long maxMemory = runtime.maxMemory();
+    long totMemory = runtime.totalMemory();
+    long totFreeMemory = (freeMemory + (maxMemory - totMemory));
+    long availMemory = (totFreeMemory * MEM_PCT_PHASE_2) / 100;
     int avgBufSize = (int)(availMemory / bufferCount.get());
     int cacheSize = Math.max(MIN_READ_AHEAD_CACHE_SIZE, avgBufSize);
     if(cacheSize > bufferSize)

--
Gitblit v1.10.0