You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2012/12/11 11:14:06 UTC
svn commit: r1420066 -
/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
Author: andygumbrecht
Date: Tue Dec 11 10:14:05 2012
New Revision: 1420066
URL: http://svn.apache.org/viewvc?rev=1420066&view=rev
Log:
Added flagForDeleteOnExit.
Modified:
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
Modified: openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java?rev=1420066&r1=1420065&r2=1420066&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java (original)
+++ openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java Tue Dec 11 10:14:05 2012
@@ -180,7 +180,11 @@ public class Files {
delete();
}
};
- Runtime.getRuntime().addShutdownHook(deleteShutdownHook);
+ try {
+ Runtime.getRuntime().addShutdownHook(deleteShutdownHook);
+ } catch (Throwable e) {
+ //Ignore
+ }
} finally {
Thread.currentThread().setContextClassLoader(loader);
}
@@ -188,6 +192,26 @@ public class Files {
public static void deleteOnExit(final File file) {
delete.add(file.getAbsolutePath());
+ flagForDeleteOnExit(file);
+ }
+
+ public static void flagForDeleteOnExit(final File file) {
+ if (file.exists()) {
+ if (file.isDirectory()) {
+ final File[] files = file.listFiles();
+ if (null != files) {
+ for (final File f : files) {
+ flagForDeleteOnExit(f);
+ }
+ }
+ }
+
+ try {
+ file.deleteOnExit();
+ } catch (SecurityException e) {
+ //Ignore
+ }
+ }
}
private static void delete() {
@@ -206,13 +230,12 @@ public class Files {
}
}
}
-
- if (!file.delete()) {
- try {
+ try {
+ if (!file.delete()) {
file.deleteOnExit();
- } catch (Throwable e) {
- //Ignore
}
+ } catch (Throwable e) {
+ //Ignore
}
}
}