* remove some Java 6 compatibility hacks

This commit is contained in:
Reinhard Pointner 2014-03-19 19:09:10 +00:00
parent 33ca22c1bb
commit 89c1744fd3
1 changed files with 6 additions and 19 deletions

View File

@ -14,6 +14,7 @@ import java.io.StringWriter;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.file.AtomicMoveNotSupportedException;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Collection;
@ -50,21 +51,11 @@ public final class FileUtilities {
// move folder
org.apache.commons.io.FileUtils.moveDirectory(source, destination);
} else {
// move file
// on Windows ATOMIC_MOVE allows us to rename files even if only lower/upper-case changes (without ATOMIC_MOVE the operation would be ignored)
try {
// * On Windows ATOMIC_MOVE allows us to rename files even if only lower/upper-case changes (without ATOMIC_MOVE the operation would be ignored)
try {
java.nio.file.Files.move(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE);
} catch (IOException e) {
// HACK to keep things working on Java 6
if (e.getClass().getName().contains("AtomicMoveNotSupported")) {
java.nio.file.Files.move(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING);
} else {
throw e;
}
}
} catch (LinkageError e) {
org.apache.commons.io.FileUtils.moveFile(source, destination); // use "copy and delete" as fallback if standard rename fails
java.nio.file.Files.move(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE);
} catch (AtomicMoveNotSupportedException e) {
java.nio.file.Files.move(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
}
@ -80,11 +71,7 @@ public final class FileUtilities {
org.apache.commons.io.FileUtils.copyDirectory(source, destination);
} else {
// copy file
try {
java.nio.file.Files.copy(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (LinkageError e) {
org.apache.commons.io.FileUtils.copyFile(source, destination);
}
java.nio.file.Files.copy(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
return destination;