You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oz...@apache.org on 2007/09/06 18:28:42 UTC

svn commit: r573315 - /commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java

Author: ozeigermann
Date: Thu Sep  6 09:28:42 2007
New Revision: 573315

URL: http://svn.apache.org/viewvc?rev=573315&view=rev
Log:
Speed enhancement fix for deletes as described in https://issues.apache.org/jira/browse/TRANSACTION-26. Thanks to Bojan Vukojevic.

Modified:
    commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java

Modified: commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java
URL: http://svn.apache.org/viewvc/commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java?rev=573315&r1=573314&r2=573315&view=diff
==============================================================================
--- commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java (original)
+++ commons/proper/transaction/trunk/src/java/org/apache/commons/transaction/file/FileResourceManager.java Thu Sep  6 09:28:42 2007
@@ -145,35 +145,33 @@
      *  
      */
 
-    protected static void applyDeletes(File removeDir, File targetDir, File rootDir) throws IOException {
+    protected static void applyDeletes(File removeDir, File targetDir, File rootDir)
+            throws IOException {
         if (removeDir.isDirectory() && targetDir.isDirectory()) {
             File[] files = removeDir.listFiles();
             for (int i = 0; i < files.length; i++) {
                 File removeFile = files[i];
                 File targetFile = new File(targetDir, removeFile.getName());
-                if (!removeFile.isDirectory()) {
+                if (removeFile.isFile()) {
                     if (targetFile.exists()) {
                         if (!targetFile.delete()) {
                             throw new IOException("Could not delete file " + removeFile.getName()
                                     + " in directory targetDir");
                         }
-                    } else if (!targetFile.isFile()) {
-                        // this is likely a dangling link
-                        targetFile.delete();
-                    } 
+                    }
                     // indicate, this has been done
                     removeFile.delete();
                 } else {
                     applyDeletes(removeFile, targetFile, rootDir);
                 }
-                // delete empty target directories, except root dir
-                if (!targetDir.equals(rootDir) && targetDir.list().length == 0) {
-                    targetDir.delete();
-                }
+            }
+            // delete empty target directories, except root dir
+            if (!targetDir.equals(rootDir) && targetDir.list().length == 0) {
+                targetDir.delete();
             }
         }
     }
-
+    
     /*
      * --- object members ---
      *