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 ---
*