jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java
changeset 26864 3383e655118e
parent 25859 3317bb8137f4
child 26874 5ff3fbb88d3c
--- 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);