You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2011/09/12 14:52:21 UTC
svn commit: r1169721 -
/camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java
Author: cschneider
Date: Mon Sep 12 12:52:20 2011
New Revision: 1169721
URL: http://svn.apache.org/viewvc?rev=1169721&view=rev
Log:
Allow several tries to delete a directory as on windows the directory can still be locked while a server process is shutting down
Modified:
camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java
Modified: camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java?rev=1169721&r1=1169720&r2=1169721&view=diff
==============================================================================
--- camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java (original)
+++ camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/junit4/TestSupport.java Mon Sep 12 12:52:20 2011
@@ -410,15 +410,41 @@ public abstract class TestSupport extend
* @param file the directory to be deleted
*/
public static void deleteDirectory(File file) {
+ int tries = 0;
+ int maxTries = 5;
+ boolean exists = true;
+ while (exists && (tries < maxTries)) {
+ recursivelyDeleteDirectory(file);
+ tries ++;
+ exists = file.exists();
+ if (exists) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // Ignore
+ }
+ }
+ }
+ if (exists) {
+ throw new RuntimeException("Deletion of file " + file + " failed");
+ }
+ }
+
+ private static void recursivelyDeleteDirectory(File file) {
+ if (!file.exists()) {
+ return;
+ }
+
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
- deleteDirectory(files[i]);
+ recursivelyDeleteDirectory(files[i]);
+ }
+ } else {
+ boolean success = file.delete();
+ if (!success) {
+ LOG.warn("Deletion of file: " + file.getAbsolutePath() + " failed");
}
- }
-
- if (file.exists()) {
- assertTrue("Deletion of file: " + file.getAbsolutePath() + " failed", file.delete());
}
}