--- a/jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java Sun Sep 28 10:42:50 2014 +0800
+++ b/jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java Mon Sep 29 18:56:32 2014 +0200
@@ -402,6 +402,14 @@
openFiles();
}
+ private boolean isParentWritable(Path path) {
+ Path parent = path.getParent();
+ if (parent == null) {
+ parent = path.toAbsolutePath().getParent();
+ }
+ return parent != null && Files.isWritable(parent);
+ }
+
/**
* Open the set of output files, based on the configured
* instance variables.
@@ -458,7 +466,7 @@
// Note that this is a situation that may happen,
// but not too frequently.
if (Files.isRegularFile(lockFilePath, LinkOption.NOFOLLOW_LINKS)
- && Files.isWritable(lockFilePath.getParent())) {
+ && isParentWritable(lockFilePath)) {
try {
channel = FileChannel.open(lockFilePath,
WRITE, APPEND);