aboutsummaryrefslogtreecommitdiff
path: root/jimfs/src/main
diff options
context:
space:
mode:
authorColin Decker <cgdecker@google.com>2013-10-09 14:55:21 -0400
committerColin Decker <cgdecker@google.com>2013-10-09 14:55:21 -0400
commita78183e6610ccba9a85eb29f6e52cf348b2b70e4 (patch)
tree2e9ef8a01f1cd7993d7373fb2b5b0a7871826f75 /jimfs/src/main
parent81c21f4152ff23a0548da1e35bb31750a3154ad6 (diff)
downloadjimfs-a78183e6610ccba9a85eb29f6e52cf348b2b70e4.tar.gz
Fix lookup of a root directory that doesn't exist to always throw NoSuchFileException.
This prevents creation of a new root directory (or file!) using Files.createDirectory etc. in file systems that support multiple roots.
Diffstat (limited to 'jimfs/src/main')
-rw-r--r--jimfs/src/main/java/com/google/jimfs/internal/FileTree.java7
1 files changed, 3 insertions, 4 deletions
diff --git a/jimfs/src/main/java/com/google/jimfs/internal/FileTree.java b/jimfs/src/main/java/com/google/jimfs/internal/FileTree.java
index 044cbcf..d3eaa55 100644
--- a/jimfs/src/main/java/com/google/jimfs/internal/FileTree.java
+++ b/jimfs/src/main/java/com/google/jimfs/internal/FileTree.java
@@ -98,10 +98,9 @@ final class FileTree {
// lookup the root directory
DirectoryEntry entry = superRoot.asDirectoryTable().get(path.root());
if (entry == null) {
- // root not found
- return !names.isEmpty()
- ? null
- : new DirectoryEntry(superRoot, path.root(), null);
+ // root not found; always return null as no real parent directory exists
+ // this prevents new roots from being created in file systems supporting multiple roots
+ return null;
} else if (names.isEmpty()) {
// root found, no more names to look up
return entry;