From a73324289d9ff413e1935adc124227c9528442e7 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 22 Sep 2014 10:06:56 +0000
Subject: [PATCH] OPENDJ-1472 : File based changelog : optimize random seek in each log file CR-3727

---
 opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
index 97e619d..04f2533 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
@@ -3335,32 +3335,36 @@
 
 
   /**
-   * Attempts to delete the specified file or directory.  If it is a directory,
+   * Attempts to delete the specified file or directory. If it is a directory,
    * then any files or subdirectories that it contains will be recursively
    * deleted as well.
    *
-   * @param  file  The file or directory to be removed.
-   *
-   * @return  <CODE>true</CODE> if the specified file and any subordinates are
-   *          all successfully removed, or <CODE>false</CODE> if at least one
-   *          element in the subtree could not be removed.
+   * @param file
+   *          The file or directory to be removed.
+   * @return {@code true} if the specified file and any subordinates are all
+   *         successfully removed, or {@code false} if at least one element in
+   *         the subtree could not be removed or file does not exists.
    */
   public static boolean recursiveDelete(File file)
   {
-    boolean successful = true;
-    if (file.isDirectory())
+    if (file.exists())
     {
-      File[] childList = file.listFiles();
-      if (childList != null)
+      boolean successful = true;
+      if (file.isDirectory())
       {
-        for (File f : childList)
+        File[] childList = file.listFiles();
+        if (childList != null)
         {
-          successful &= recursiveDelete(f);
+          for (File f : childList)
+          {
+            successful &= recursiveDelete(f);
+          }
         }
       }
-    }
 
-    return (successful & file.delete());
+      return (successful & file.delete());
+    }
+    return false;
   }
 
 

--
Gitblit v1.10.0