From f581b521d81787d738cea0f621b8f782965692d0 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Thu, 16 Jun 2016 09:14:13 +0000
Subject: [PATCH] OPENDJ-3119: OpenAM 13.5 fails to install on a machine with 1GB

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java |   17 +++++------------
 1 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index ba780ce..4417fb4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -483,14 +483,13 @@
       final long availableMemory = calculateAvailableHeapMemoryForBuffers();
       logger.info(NOTE_IMPORT_LDIF_TOT_MEM_BUF, availableMemory, nbBuffer);
 
-      final int bufferSize = Math.min((int) (availableMemory / nbBuffer), MAX_BUFFER_SIZE);
-      if (bufferSize < MIN_BUFFER_SIZE)
+      final long minimumRequiredMemory = nbBuffer * MIN_BUFFER_SIZE + DB_CACHE_SIZE + REQUIRED_FREE_MEMORY;
+      if (availableMemory < minimumRequiredMemory)
       {
         // Not enough memory.
-        throw new InitializationException(ERR_IMPORT_LDIF_LACK_MEM.get(availableMemory, nbBuffer * MIN_BUFFER_SIZE
-            + DB_CACHE_SIZE + REQUIRED_FREE_MEMORY));
+        throw new InitializationException(ERR_IMPORT_LDIF_LACK_MEM.get(availableMemory, minimumRequiredMemory));
       }
-      return bufferSize;
+      return Math.min((int) (availableMemory / nbBuffer), MAX_BUFFER_SIZE);
     }
 
     /**
@@ -499,12 +498,6 @@
      */
     private long calculateAvailableHeapMemoryForBuffers()
     {
-      final Runtime runtime = Runtime.getRuntime();
-      // call twice gc to ensure finalizers are called
-      // and young to old gen references are properly gc'd
-      runtime.gc();
-      runtime.gc();
-
       final long totalAvailableMemory;
       if (DirectoryServer.isRunning())
       {
@@ -525,7 +518,7 @@
         // Be pessimistic when memory is low.
         importMemPct -= 25;
       }
-      return (totalAvailableMemory * importMemPct / 100) - (DB_CACHE_SIZE + REQUIRED_FREE_MEMORY);
+      return (totalAvailableMemory * importMemPct / 100);
     }
   }
 

--
Gitblit v1.10.0