diff options
author | Colin Decker <cgdecker@google.com> | 2013-10-09 14:55:21 -0400 |
---|---|---|
committer | Colin Decker <cgdecker@google.com> | 2013-10-09 14:55:21 -0400 |
commit | a78183e6610ccba9a85eb29f6e52cf348b2b70e4 (patch) | |
tree | 2e9ef8a01f1cd7993d7373fb2b5b0a7871826f75 /jimfs/src/main | |
parent | 81c21f4152ff23a0548da1e35bb31750a3154ad6 (diff) | |
download | jimfs-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.java | 7 |
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; |