@ -51,6 +51,7 @@ import static org.junit.Assert.fail;
import java.io.File ;
import java.io.IOException ;
import java.io.PrintStream ;
import java.time.Instant ;
import java.util.ArrayList ;
import java.util.Collections ;
@ -237,35 +238,30 @@ public abstract class LocalDiskRepositoryTestCase {
private static boolean recursiveDelete ( final File dir ,
boolean silent , boolean failOnError ) {
assert ! ( silent & & failOnError ) ;
if ( ! dir . exists ( ) )
return silent ;
final File [ ] ls = dir . listFiles ( ) ;
if ( ls ! = null )
for ( int k = 0 ; k < ls . length ; k + + ) {
final File e = ls [ k ] ;
if ( e . isDirectory ( ) )
silent = recursiveDelete ( e , silent , failOnError ) ;
else if ( ! e . delete ( ) ) {
if ( ! silent )
reportDeleteFailure ( failOnError , e ) ;
silent = ! failOnError ;
}
}
if ( ! dir . delete ( ) ) {
if ( ! silent )
reportDeleteFailure ( failOnError , dir ) ;
silent = ! failOnError ;
int options = FileUtils . RECURSIVE | FileUtils . RETRY
| FileUtils . SKIP_MISSING ;
if ( silent ) {
options | = FileUtils . IGNORE_ERRORS ;
}
return silent ;
try {
FileUtils . delete ( dir , options ) ;
} catch ( IOException e ) {
reportDeleteFailure ( failOnError , dir , e ) ;
return ! failOnError ;
}
return true ;
}
private static void reportDeleteFailure ( boolean failOnError , File e ) {
private static void reportDeleteFailure ( boolean failOnError , File f ,
Exception cause ) {
String severity = failOnError ? "ERROR" : "WARNING" ;
String msg = severity + ": Failed to delete " + e ;
if ( failOnError )
String msg = severity + ": Failed to delete " + f ;
if ( failOnError ) {
fail ( msg ) ;
else
} else {
System . err . println ( msg ) ;
}
cause . printStackTrace ( new PrintStream ( System . err ) ) ;
}
/** Constant <code>MOD_TIME=1</code> */