MIME4J-245 Use FileUtils when deleting files - contributed by Antoine Duprat
git-svn-id: https://svn.apache.org/repos/asf/james/mime4j/trunk@1686797 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 059b04c..f2cc716 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
<junit.version>4.10</junit.version>
<mockito.version>1.9.5</mockito.version>
<!-- Version 2.2 is required for Java 1.5 compatibility -->
- <commons-io.version>2.2</commons-io.version>
+ <commons-io.version>2.4</commons-io.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
diff --git a/storage/pom.xml b/storage/pom.xml
index 5555c15..af8fac4 100644
--- a/storage/pom.xml
+++ b/storage/pom.xml
@@ -40,6 +40,10 @@
<artifactId>apache-mime4j-dom</artifactId>
</dependency>
<dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
diff --git a/storage/src/main/java/org/apache/james/mime4j/storage/TempFileStorageProvider.java b/storage/src/main/java/org/apache/james/mime4j/storage/TempFileStorageProvider.java
index 37ed92e..ac13cd9 100644
--- a/storage/src/main/java/org/apache/james/mime4j/storage/TempFileStorageProvider.java
+++ b/storage/src/main/java/org/apache/james/mime4j/storage/TempFileStorageProvider.java
@@ -30,6 +30,8 @@
import java.util.Iterator;
import java.util.Set;
+import org.apache.commons.io.FileUtils;
+
/**
* A {@link StorageProvider} that stores the data in temporary files. The files
* are stored either in a user-specified directory or the default temporary-file
@@ -91,9 +93,13 @@
if (prefix == null || prefix.length() < 3)
throw new IllegalArgumentException("invalid prefix");
- if (directory != null && !directory.isDirectory()
- && !directory.mkdirs())
- throw new IllegalArgumentException("invalid directory");
+ if (directory != null) {
+ try {
+ FileUtils.forceMkdir(directory);
+ } catch (IOException e) {
+ throw new IllegalArgumentException("invalid directory");
+ }
+ }
this.prefix = prefix;
this.suffix = suffix;
@@ -163,9 +169,10 @@
for (Iterator<File> iterator = filesToDelete.iterator(); iterator
.hasNext();) {
- File file = iterator.next();
- if (file.delete()) {
+ try {
+ FileUtils.forceDelete(iterator.next());
iterator.remove();
+ } catch (IOException e) {
}
}
}